Home Gallery Resources The Team Rules chat Login Register
Pages: [1]
Author Topic: [Intermediate] How to Nullify an Action's Hard-Coding  (Read 5064 times)
0 Members and 1 Guest are viewing this topic.
Meme Machine
Offline Offline

Posts: 7206

  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « on: March 21, 2018, 09:20:12 AM »

    This tutorial wouldn't have been possible without being guided by ds22.

    You know how sometimes when you're making a custom Special over a character, you just run into something truly bizarre, despite knowing you've done everything right with your PSA coding (assuming there's no other issues with your coding and/or file)? Then it might turn the Actions you're using have hard-coding that's messing with things. If that's the case, then there's one of two options you can do.
    1.) Use a different Action.
    2.) Nullify the associated hard-coding.

    This tutorial will show you what you need to do to achieve the second method.

    -BrawlBox v0.71 (later versions will corrupt your module, while earlier versions don't support module editing). Alternatively, you can use Module Editor, but this tutorial won't be covering that.
    -Your character's module file (ft_*.rel)

    Disclaimer: While you can null out the hard-coding of all your character's Special Actions, I would only recommend nulling out hard-coding you know you won't be using, since if you use unedited Specials with nulled hard-coding, they obviously won't work anymore.

    Now that we have what we need, let's get started. This tutorial only has one part, which is for BrawlBox usage.

    For this tutorial, I'll be using Lucario as a guide.

    1.) BrawlBox Usage
    Start things off by opening your character's module in BrawlBox.

    Next, you'll open Section[5] by right-clicking on the entry, and selecting "Open in Memory Viewer", you'll then be greeted by this window.

    Now scroll down until you see ft*StatusUniqProcess* text labels. If you're familiar with animation naming conventions, then these labels should pop out to you on what does what.

    In this example case, I've highlighted ftLucarioStatusUniqProcessSpecialHiBound, which is executed when Lucario hits something during Extreme Speed. For the sake of this tutorial, this is what I'll be nulling.

    What you need to do now is select any of the green byte strings, and look at the Relocation Command section on the bottom right of the window to see see if it targets Section[1]. If it does, then open up Section[1] in the Memory Viewer, and go to the listed Target Offset.

    What we're looking for here is a blr function, which this Target Offset conveniently has. If your selected Target Offset doesn't use a blr function, then go back to the ft*StatusUniqProcess* part of Section[5], select a different byte string, and go to that Target Offset in Section[1] instead. Repeat this step until you run into a blr function in Section[1].

    Now that you have your desired Target Offset, go back to the ft*StatusUniqProcess* of Section[5], and change all associated sections of your specific process which reference Section[1] with your Target Offset. Do not alter anything which references any other Section. Repeat this process (use the same Target Offset) with any other process you want to null. Once you're done, you can save, test, and PSA edit to your liking.

    That concludes my tutorial, I hope this is able to help those experiencing the same issues I've had with this.

    I don't take requests.

    My PSA Thread

    Intermediate Kitten
    Offline Offline

    Posts: 15

    View Profile Awards
    « Reply #1 on: July 27, 2018, 12:51:53 AM »

    Hello. I just joined the site recently, but I've heard a lot about your work. I was wondering if you know how to nullify Special Double Jump coding with a Module Editor or PSA. I'd like to be able to change Ness' and Lucas' Double Jumps back into normal ones and give Lucas a normal grab. I'm pretty adept at hacking, so if you give me the instructions, I can follow them. I want to learn how to do this myself. Thank you!

    Pages: [1]
    Jump to: