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

To Base or Not to Base

LilBueno

Boy Wonder
  • 243
    Posts
    11
    Years
    As I learn how to hack, I keep up with a bunch of threads that talk about things I have no understanding of so when I can understand them, I can make use of them. Most of these threads are Research and Resources threads. So I see when it comes to using bases, there's a trend of "let the hacker do it themselves" to some thought processes. Features like Running Shoes indoors, National Dex at the beginning, Physical/Special split, adding in Fairy Types, decapitalization, the newer Repel system, and other very "basic" features some people think should be left for new hackers to figure out themselves.

    So my question is very open-ended: what are your thoughts on bases? Would you rather do the simple stuff yourself and use bases for the added features? Is it okay for newer hackers to not learn how to do simple hex edits if they're using a base, but can still get the more complicated stuff done? When does a base do too much?
     
    Ultimately, for me its about the result. If a person figures things out himself/herself, great. But if a person wants to use a resource like a rom base, I think that's fine too.
    What I'm more interested in is the final result of the hack. If a hacker wants to use a base and makes a good/interesting hack, then that's great.
     
    Last edited:
    IMO learning to import the basic features yourself helps you understand the more complicated ones down the road. Bases are handy, sure, but there is merit to at least understanding the process behind them.

    Personally, I prefer doing as much as I can manually. It gives me peace of mind knowing that I can keep track of even the most simple of byte changes.
     
    Like Pleasure said here, it is at least worth trying to understand how some base/patch works that someone else has implemented before porting it over to your own hack. This is partly to understand the process behind how they work, and thus learning something new.
    Sometimes you may even want to apply some patch to your own hack that does something, but there is something missing with the patch and you need to implement that missing part yourself. Then knowing what the patch does may be crucial in being able to do this.
    Another thing I can remember by personal experience is that sometimes the patch I want to apply is generally broken in some way, and I have to fix some bug with it. This is something you normally wouldn't have to consider though - especially if you apply a patch that is being used a lot and no one has run into anything broken with it.

    But perhaps the most important reason why you should know what some patch does is to make sure it doesn't break anything in your hack when you port it over. I don't know about other patch formats except for IPS, but IPS for example uses the following format in general to define, what the patch does:

    Code:
    1. Address where to write to (3 bytes) to cover address space from 0x0 to 0xFFFFFF (3-byte max value).
    2. How many bytes to write to (2 bytes).
    3. Data... (as many data bytes as told in 2.)
    and this part repeats over and over again (apart from a few exceptions).

    Basically, IPS patches, but probably also other patching formats have predefined places where to overwrite data. So when you apply any patch to your own hack, it doesn't look for, "Where is some free space for this code/data?". Instead, if you have written your own, new stuff in an address where the patch is supposed to write some new data to, when you apply that patch to your hack, something will break down. Thus it is important to understand at least, where the patch writes new data to and at the same time, know what kind of data you have stored in that address yourself.

    And if you want to apply some patch to your hack that would overwrite some new stuff you have written, you either have to move your own stuff out of the way so that the patch can safely write there, or hack the patch file to write that data elsewhere and change some pointers around in that patch file (which I personally wouldn't recommend doing in this kind of a situation, but this could be done).

    What comes to your own questions though, I would personally use a patch (or base) made by someone else if it does something I personally can't do, or it would be a time-consuming process to implement by myself. But even so, I would make sure the patch clearly doesn't break anything in my hack when I port it over.

    One handy tool for checking out what an IPS patch does is IPS Peek: https://www.romhacking.net/utilities/1038/

    I haven't checked if a similar tool exists for other patching formats, but that one is something you really want to use if you want to port some patch made by someone else over your rom file.
     
    Last edited:
    I may use a ROMbase for things that would be prohibitively time consuming for me to do myself, but know how to do. Like, some of the moveset patches that are floating around that update all the movesets to their current gen equivalents at once are an example.

    Patches that mess with the tilesets are something that I'd rather do myself, since I will have control of where they're going and what they overwrite. Inserting tiles myself gives me control that I wouldn't give up for a patch that may not have everything to my liking.

    For things that I don't trust other people to do, I'll do those myself. Decap patches are one of these. I'd rather spend an hour or two idly mulling over the hex editor and Decapping everything I find (that isn't in a dialogue script) than trust people who use find and replace to automate the job for them and may get stray non-text stuff in the process. It's time consuming and tedious, but it's something that you can do with no thought involved and watch something else while doing it.

    If there's something that I definitely don't know how to do but want implemented, I'll do my best to understand the research thread or underlying information to the patch, and then apply it. Blindly applying the patch in this case forfeits a learning opportunity and if something goes wrong I won't know how to fix it. Like miksy91 said above, you need to know where the data is going if you're applying a patch on top of your hack, or if you're applying multiple patches onto a clean ROM.
     
    Back
    Top