Help applying some patches to Super Mario All-Stars

Discussion in 'Technical Discussion' started by Melody the Sylveon, Sep 14, 2015.

  1. Melody the Sylveon

    Melody the Sylveon

    You're never too old to become your true self. Oldbie
    So, there are two Super Mario All-Stars patches that I'd like to apply (preferably to a copy of Mario All-Stars + World).
    The first is some graphics edits to SMB1 to bring it a bit more in line with the original:
    and the second fixes the infamous brick physics glitch in its version of SMB1:

    Both of these patches say they can be applied together, but there's some weird stuff about the ROM headers that I think I'm messing up, I guess I don't really understand the process.
    (Also, should my ROM collection have headers or not? What's the difference?)

    Also, only one says that it can be applied to +World, and the other one is ambiguous.

    Is there anyone that could help me with these problems/questions?

    (And if it can't be applied to +World, I guess I'll just use the vanilla ROM. I'm kinda hoping to get the "ultimate package", though.)
  2. Covarr


    Sentient Cash Register Member
    Trapped in my own thoughts.
    Two stageplays, a screenplay, and an album
    I can't answer questions particular to these patches, as RHDN is blocked at work (if nobody else has them by the time I'm home, I'll look deeper into this), but I can give a bit of insight into ROM headers.

    Generally speaking, "headered" and "headerless" refers to 512 byte copier headers. The metadata contained in them was added by the cartridge copier when the games were dumped. This information is pretty much entirely unnecessary in any modern settings, not part of the original game, and makes your rom effectively "dirty", but since so many of the older collections that got distributed across the internet had them, and since so many people didn't really understand what a header actually was and just wanted to play their SMC games on their favorite emulators, it's not uncommon to find IPS patches that require them.

    As such, your best bet is to pay close attention to the readme on any given romhack or patch before applying it. Check if it wants a headered or headerless ROM. The thing is, these headers offset the entire ROM by 512B, so an IPS patch that assumes you have a headered ROM will patch the wrong addresses on a headerless ROM and vice versa. I can't look at the patches in question at work, but in more general terms, here's all three three possible scenarios you could be dealing with.

    If both patches want a headerless ROM:
    1. Open your unpatched rom using NSRT. If it has a header, remove it.
    2. Apply both patches.

    If both patches want a headered ROM:
    1. Open your unpatched rom using NSRT. If it does not have a header, add one.
    2. Apply both patches.

    If one patch wants a headered ROM and the other wants a headerless ROM:
    1. Open your unpatched rom using NSRT. If it does not have a header, add one.
    2. Apply the patch that wants the headered ROM.
    3. Using NSRT, remove the header from the ROM.
    4. Apply the other patch, the one that wants a headerless ROM.

    The most important thing is to check the readme files that come with any patches you download. They'll usually say whether they want a headered or headerless ROM, which can save you a lot of time.
  3. Blastfrog


    See ya starside. Member