Home Gallery Resources The Team Rules chat Login Register
Pages: [1]
Author Topic: [Advanced] How to Get a Brawl PSA to Work in PM  (Read 11644 times)
0 Members and 1 Guest are viewing this topic.
KingJigglypuff
Meme Machine
Moderator
****
Offline Offline

Posts: 7207


  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « on: August 27, 2016, 01:24:34 PM »


    Hey, everyone. I'm back with yet again another tutorial. This tutorial will be on something a lot of people have been wanting to know how to do for a while now, and that's how to get a Brawl PSA working in PM.

    While for the most part, using a Brawl PSA in PM without proper editing does work, there's a few things that need to be done for maximum functionality. This tutorial will show you what you need to do.

    Take note that you can follow these steps in whichever order you like. I highly recommend you at least know a little bit of PSA coding before attempting this.

    Step 1.) Dash Sub Action.
    Start by opening up your PSA, and going to the Dash Sub Action (Sub Action E). There, you will see the standard coding in the Main tab. Copy that coding, and paste it into either the GFX or SFX tab [make sure the commands are executed in the proper timer order (i.e. commands that trigger on earlier Frames go at the top of the coding)].

    After you've moved the coding, go back to the Main tab, and change either of the commands into a Goto command (Nop or delete the other command). Change the command's parameter from a Pointer into a Value, and insert the following value into it: 0x9019F6E8.

    What this does is allow your character to Dash Dance in PM.

    Step 2.) Jab Sub Actions.
    For this part, you'll be going into the Attack11/12/13 Sub Actions (Sub Actions 0x48, 0x49, and 0x4A). There, you'll see your standard Jab coding. Search for a Bit Variable Set command that activates RA-Bit[16], and move it upwards, so that it activates when the hitboxes activate.

    After that, you might see a second Bit Variable Set command that either sets RA-Bit[17] or RA-Bit[22]. If it's RA-Bit[17], then leave it as it. If it's RA-Bit[22], then change it to RA-Bit[17] (take note that you don't need to do this for the final part of your jab combo). If the Bit set is RA-Bit[20], however, then leave it alone, as that's what allows the Jab finisher to go into the Rapid Jab.

    When you're done with that, go to the GFX tab, and assuming there's no commands in said tab, insert an Asynchronous Timer, and set it to the Frame the hitboxes come out on (you can just copy it from the Main tab). After that, add a new command, change it to a Goto command, and just like the Dash part of the tutorial, change the command's parameter from Pointer into Value, and insert the following value: 0x9019D080.

    This will allow your character's Jabs to link properly in PM. Take note that you do not need to do this for the Rapid Jab Sub Actions (Attack100Start, Attack100, and AttackEnd) or the final part of your Jab combo if it does not go into Rapid Jab afterward.

    Step 3.) Aerial Attack Sub Actions.
    For this part, you'll be going into the AttackAirN/F/B/Hi/Lw Sub Actions (Sub Actions 0x62, 0x63, 0x64, 0x65, and 0x66), and going straight into either the GFX or SFX tabs, based on which tab has less coding.

    Once you've figured out which Sub Action has less coding, take that coding, and merge it with the tab which wasn't chosen. After you've done that, you can choose any one of the old commands in the chosen tab, and change it into a Goto command (make sure to Nop or delete the other commands), change the command's parameter from a Pointer into a Value, and insert the following value: 0x9019C168

    This will allow your character to Ledge cancel their aerial attacks.

    Step 4.) ItemKick Sub Action.
    For this part, all you need to do is go to the ItemKick Sub Action (Sub Action 0x14B), and rename it to GuardOn. This will prevent your character from T-Posing when shielding after landing on the ground.

    Step 5.) CliffCatch Sub Action.
    For this part, you just need to go to the CliffCatch Sub Action (Sub Action 0xD5), and change the first Asynchronous Timer in the GFX and SFX tabs to activate on Frame 0. Also, in the SFX tab, move the SFX command that's in the If: Roll a Die: 2 segment out of it.

    This will prevent the GFX from glitching out, while also always making your character grunt when grabbing a ledge, like in Melee/PM.

    Step 6.) Variable Changing.
    If your character has custom attacks that use custom Variables, you may need to change those Variables. Use the following thread to know which Variables you can use. http://forums.kc-mm.com/index.php?topic=74266.0
    Take note that you do not need to change the Variables the game already uses for certain things (ex: Jabs, Aerials, Special Actions, etc).

    Step 7.) High Damage SFX.
    This will require you to know which SFX IDs your character has for their pain grunts, if they have any. What you'll need to do is make a new Sub Routine, and insert it with the following coding:

    X = SFX 1
    Y = SFX 2
    Z = SFX 3
    A = SFX 4
    If Compare: IC-Basic[1005] > 3.7
       Stop Sound Effect: Value-X,
       Stop Sound Effect: Value-Y,
       Stop Sound Effect: Value-Z,
       Stop Sound Effect: Value-A,
       If Compare: IC-Basic[1005] > 6.7
          If Roll A Die: 2
             Sound Effect: Z
             Sound Effect: Z
          Else
             Sound Effect: A
             Sound Effect: A
          End If
       Else
          If Roll A Die: 2
             Sound Effect: X
          Else
             Sound Effect: Y
          End If
       End If
    End If
    After you've completed your coding string, make note of the Offset above the coding. Next, insert a Sub Routine command which points to the said Offset in the SFX tab of the following Sub Actions: DamageFlyHi (Sub Action 0xA4), DamageFlyN (Sub Action 0xA5), DamageFlyLw (Sub Action 0xA6), DamageFlyTop (Sub Action 0xA7), and DamageFlyRoll (0xA8). Make sure to change one of the existing commands in the Sub Action into the Sub Routine, and change the other command into a Nop or delete it.

    This bit of coding when inserted into the mentioned Sub Actions will cause your character to emit a pain grunt when they're sent flying by a strong attack.

    Step 8.) CapturePulled Sub Actions.
    For this part, you'll need nop (or remove) the Sound Effect command in the following Sub Actions: CapturePulledHi (Sub Action 0x7E), CapturePulledLw (Sub Action 0x81), CapturePulledSnake (Sub Actions 0x84 and 0x87), CapturePulledDxSnake (Sub Actions 0x8A and 0x8D), CapturePulledBigSnake (Sub Actions 0x90 and 0x93).

    These eight steps are essential to making your character properly functional in PM, but don't think you're done yet, as there's still a few things you need to do to make your character's moveset actually fit in a PM environment, such as editing Attributes and Hitboxes, though you'll need to figure out how to go at that yourself.

    If you run into any issues and/or have any questions, don't hesitate to reply.
    « Last Edit: December 16, 2018, 06:10:44 AM by KingJigglypuff » Logged

    I don't take requests.

    My PSA Thread

    ZX_BraveSol_ZX
    Supreme Kitten
    ********
    Offline Offline

    Posts: 501


    Give them no quarter!

  • Awards Heart Container Shadow the Pinhog B

  • View Profile Awards
    « Reply #1 on: October 18, 2016, 10:50:42 PM »


    I've got two PSAs that, for whatever reason will NOT WAVEDASH I've edited their attributes to be EXACTLY like PM Marth and Ike and yet it doesnt work, they just...stick to the ground losing all moment upon landing. 
    http://forums.kc-mm.com/Gallery/BrawlView.php?Number=205933
    http://forums.kc-mm.com/Gallery/BrawlView.php?Number=205932
    these are the two I'm having issues with
    Logged

    Never underestimate the power of the ass.


    KingJigglypuff
    Meme Machine
    Moderator
    ****
    Offline Offline

    Posts: 7207


  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « Reply #2 on: October 19, 2016, 07:02:00 AM »


    Wavedashing in PM is handled via GCT code, so I'm not sure if I can really help you there, though I would suggest fiddling with the Stopping Velocity Attribute, as I think it has to do with ground traction. Or maybe get your attributes to match Luigi's, given he has the most dramatic of wavedashes.

    Edit: Yes, it's the Stopping Velocity/Ground Friction Attribute (labeled as Stopping Velocity in BB, while it's labeled as Ground Friction in PSA) that affects the distance of a Wavedash.
    « Last Edit: October 19, 2016, 07:33:09 AM by KingJigglypuff » Logged

    I don't take requests.

    My PSA Thread

    RedipsTheCooler
    Expert Kitten
    ****
    Offline Offline

    Posts: 56


  • Awards Star Hacker Featured >9000

  • View Profile Awards
    « Reply #3 on: October 19, 2016, 10:30:59 AM »


    how does one add wavedashing to a ness/lucas clone?
    Logged


    KingJigglypuff
    Meme Machine
    Moderator
    ****
    Offline Offline

    Posts: 7207


  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « Reply #4 on: October 19, 2016, 10:51:29 AM »


    Like I mentioned before, Wavedashing was done via GCT coding, but its distance can be influenced by fiddling with the Stopping Velocity/Ground Friction Attribute.
    Logged

    I don't take requests.

    My PSA Thread

    ZX_BraveSol_ZX
    Supreme Kitten
    ********
    Offline Offline

    Posts: 501


    Give them no quarter!

  • Awards Heart Container Shadow the Pinhog B

  • View Profile Awards
    « Reply #5 on: October 21, 2016, 01:01:13 PM »


    Wavedashing in PM is handled via GCT code, so I'm not sure if I can really help you there, though I would suggest fiddling with the Stopping Velocity Attribute, as I think it has to do with ground traction. Or maybe get your attributes to match Luigi's, given he has the most dramatic of wavedashes.

    Edit: Yes, it's the Stopping Velocity/Ground Friction Attribute (labeled as Stopping Velocity in BB, while it's labeled as Ground Friction in PSA) that affects the distance of a Wavedash.
    I've tried changing them, and while I can see the difference after they stop after a run (they slide for a bit), they still cant wavedash for some reason, they just...lose all momentum for some reason and stop
    Logged

    Never underestimate the power of the ass.


    KingJigglypuff
    Meme Machine
    Moderator
    ****
    Offline Offline

    Posts: 7207


  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « Reply #6 on: October 21, 2016, 02:01:46 PM »


    I really wouldn't know what could be wrong. I'll have to talk with my fellow Ex-PMDT to see if anything specific needs to be done.
    Logged

    I don't take requests.

    My PSA Thread

    KingJigglypuff
    Meme Machine
    Moderator
    ****
    Offline Offline

    Posts: 7207


  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « Reply #7 on: December 16, 2018, 06:02:22 AM »


    A two year old bump, I know, but I've discovered an additional thing one must do when porting a Brawl moveset to PM. It requires going to the CapturePulled Sub Actions, and nopping (or removing) the Sound Effect commands. I'll update the OP with the exact Sub Action IDs and names.
    Logged

    I don't take requests.

    My PSA Thread

    KingJigglypuff
    Meme Machine
    Moderator
    ****
    Offline Offline

    Posts: 7207


  • Awards RAGE!! >9000 Hyperactive Contributor Heart Container

  • View Profile Awards
    « Reply #8 on: June 23, 2019, 09:31:53 AM »


    I know this is gonna be a bit of a bump, but it's rather important.

    If you're either porting a moveset over to PM or making a custom moveset for PM and need to change Variables, don't use LA-Basic[90] nor LA-Basic[91]. Because both variables are used for L-Canceling. Using either of them can either alter your L-Cancel window or render you unable to L-Cancel entirely.
    Logged

    I don't take requests.

    My PSA Thread

    Pages: [1]
    Print
    Jump to: