• 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] Rom edit or ASM Advice where/how to start hacking

  • 853
    Posts
    4
    Years
    • Seen Nov 9, 2023
    Ok I just got started here, and I've only known about rom hacking for about a week, I got an emulator and started playing blaze black and I loved it, having more fun than nearly any pokemon game I've ever played.

    And me being a natural curious person I started thinking about my own ideas for a hack.
    Which brought me here.

    I've watched videos downloaded a bunch of tools, but now the brain fog is setting in, and I can't figure out what each thing does.
    Or how to best use these tools in my own hack.

    I read about scripting etc. and I was wondering if I could accomplish all my ideas with just script?
    Could I change mechanics that way could I access/change source parameters?

    Then I came across ASM, very recently, and finally this comment.
    If you want more customization then perhaps decompilation is the way to go. If you have not much programming experience and/or want to take advantage of CFRU and countless tools, then perhaps rom editting will be best for you.

    I need help, I'm stumped and I can't figure out how to move forward, because for all my research I can't find the practical differences between ASM & decompiling, and using scipts and tools with Rom editing.

    And I can't find the limitations of either to help decide which I should use or start with.


    Ok here's a bit of what I want to do, change what a tile or block is defined i.e grass , cave, without changing the graphic. Or assign wild encounters to specific blocks and adjust encounter rates for each pokemon and then change the graphic to whatever I want.

    Change effect values for moves. Like scald a water type move, but it can apply burn, but I would want to adjust or change the effect of the status' too, instead of just using 1/8th and the chance for applying the status wherever that's listed.

    And add new ability effects.

    I have been trying to figure out how to do these things with xse advance map pokegen & PGE.
    But I also have TEE , PKHex and Action Replay Code Creator, but haven't really used/tried any of those yet.

    Thanks in advance.

    P.S. I'd also appreciate tips on how to find all the flags commands and variables in a ROM, I saw some reference to using a directory prompt but I couldn't figure that out.
     
    It really depends on what you want to do and how much skill with code-like stuff you have or want to develop.
    change what a tile or block is defined i.e grass , cave, without changing the graphic
    If you mean that you want grass to not spawn pokemon, I think you'd have to go with decomp for that but I am not sure if I am understanding you properly.

    assign wild encounters to specific blocks and adjust encounter rates for each pokemon and then change the graphic to whatever I want.
    This can be done with binary hacking relatively easily, though the specific blocks would be a little different than what you're probably thinking. You would have to assign the block to be a trigger to auto spawn a pre-set pokemon with the level and whatnot predetermined.

    Change effect values for moves. Like scald a water type move, but it can apply burn, but I would want to adjust or change the effect of the status' too, instead of just using 1/8th and the chance for applying the status wherever that's listed.
    This also can be done with binary hacking tools very simply, using PGE or Gen 3 Tools or the like.

    And add new ability effects.
    Now this.... This is going to be a pain regardless, unless you use someone else's work like the CFRU or Dizzy's Battle Engine for Emerald or just the Ability Resource Thread if you want to add only a few. With ASM you would have to do some research and/or data mining of your own and then write up code in a language that isn't the most user friendly. With decomp its done in C I believe and since your working with source code rather than editing compiled code its got the advantage of being a lot more readable. But I would suggest sticking with the already made stuff for this unless you have some coding experience already.


    As for the commands and variables, THIS will probably be your best bet.
     
    thanks for the response I never got a notification so I didn't realize anyone responded.

    And add new ability effects.
    Now this.... This is going to be a pain regardless, unless you use someone else's work like the CFRU or Dizzy's Battle Engine for Emerald or just the Ability Resource Thread if you want to add only a few. With ASM you would have to do some research and/or data mining of your own and then write up code in a language that isn't the most user friendly. With decomp its done in C I believe and since your working with source code rather than editing compiled code its got the advantage of being a lot more readable. But I would suggest sticking with the already made stuff for this unless you have some coding experience already.

    How would CFRU or the other engine help, I'll check the ability resource in a bit?
    And when you say I'd be working with source code is that because i'd be using a decompiler?

    I only plan to make 1 or 2 new abilities (and I have 0 coding experience) I almost got it working with pge, but then i realized that would only let me transfer existing effects to a new ability.

    What I needed was to make a new ability take the effect code from a specific other ability and tweak its affect some.
    Ok i should just stop trying to be obscure, I'm trying to change wonder guard, to work on something other than super effective hits.

    And remove shedinja's growth limit, on bulbapedia or something it seemed to imply the limit was in the ability not the pokemon itself, but i guess I should test that, actually i think that's false I heard someone used a wonder guard sabaleye..

    Well if it isn't I'd want to link it to the ability, but once I know how to change those variables it would be easy enough to create an if statement to link it to the ability. OI guess then the problem would be how to make the game continuously check it....


    change what a tile or block is defined i.e grass , cave, without changing the graphic
    If you mean that you want grass to not spawn pokemon, I think you'd have to go with decomp for that but I am not sure if I am understanding you properly.

    assign wild encounters to specific blocks and adjust encounter rates for each pokemon and then change the graphic to whatever I want.
    This can be done with binary hacking relatively easily, though the specific blocks would be a little different than what you're probably thinking. You would have to assign the block to be a trigger to auto spawn a pre-set pokemon with the level and whatnot predetermined.

    Well when i said this I was talking about 2 different ways to get the same effect I wanted.

    pretty much i wanted routes to be like they were in gen 2, where you could walk in areas without tall grass, and still spawn pokemon.
    I wanted to make routes spawn like caves, but still look like a route, i.e have grass paths etc.

    Wanting to assign encounters to specific tiles, was to create safer areas, in the path where they could be different (lower) encounter rates.
    As well as to have places on a route where I could have different spawns and rates.
    (Mind you I'm not talking about actually changing the layout of the map, I want to keep it looking the same but apply encounters to different areas of it)

    Saying this out loud i'm thinking i'll have to go to source code like you said, I think what I'm needing is like what they have in advance map, where you can set encounters by type, they have water, grass, cave etc. but you can't redefine what is what, its all linked to the specific tile type.

    So I think I'd need to create a new category, have it associated with a certain graphic i.e plains, pathway etc. and then find a way to assign things,(I guess I'd try the binary like you say) but it would have to be like other encounters seemingly random, not just step on this tile and always spawn this pokemon.

    ....at that point would it just be simpler to edit advance map to be able to work with more territory types since essentially it has all the other features I want...?

    No idea if you can answer these things but if anything talking it out as helped me better understand what i need/want to do.

    oh I'd also want to add a new type and be able to edit type effectiveness.



    ignore everything below this, its just a block quote so the forum will send you a notification.
    It really depends on what you want to do and how much skill with code-like stuff you have or want to develop.

    If you mean that you want grass to not spawn pokemon, I think you'd have to go with decomp for that but I am not sure if I am understanding you properly.


    This can be done with binary hacking relatively easily, though the specific blocks would be a little different than what you're probably thinking. You would have to assign the block to be a trigger to auto spawn a pre-set pokemon with the level and whatnot predetermined.


    This also can be done with binary hacking tools very simply, using PGE or Gen 3 Tools or the like.


    Now this.... This is going to be a pain regardless, unless you use someone else's work like the CFRU or Dizzy's Battle Engine for Emerald or just the Ability Resource Thread if you want to add only a few. With ASM you would have to do some research and/or data mining of your own and then write up code in a language that isn't the most user friendly. With decomp its done in C I believe and since your working with source code rather than editing compiled code its got the advantage of being a lot more readable. But I would suggest sticking with the already made stuff for this unless you have some coding experience already.


    As for the commands and variables, THIS will probably be your best bet.
     
    Last edited:
    Back
    Top