Kitty Corp Meow Mix Forums

Help & Tutorials => A/A Tutorials => Topic started by: pikazz on March 06, 2015, 05:19:25 PM



Title: How to add New Action Overrides Entry/Exit to those who dont have
Post by: pikazz on March 06, 2015, 05:19:25 PM
How to add New Action Overrides Entry/Exit to those who dont have

Action Overrides is an awesome thing that lets you “redo” an existing normal action inside Fighter.pac to your FitChar.pac and do code it as you wish without editing the Fitgher.pac itself!
Sadly, Action Overrides doesn’t exists on everyone. Only a few has the luxury to have it already.
Entry are the main thing that the codes has while the Exit are often used at control checks like “if Controlstick is up, do this”
This tutorial will cover 2 parts, first for adding both of the Overrides and the second part is to prevent some attack to freeze and fix the PSA! The Second part is the most important part so don’t skip it!
However, for this tutorial to work, you need a PSA that has at least 2 “special offset names”. I will explain what it is in step 3

What you need:
Your PSA
A Backup for your PSA
Brawlbox 68b
Tabuu Alpha 3
Calculator
Hex Editor

In this Tutorial, I will use Ganon as a Base
PART 1
Step 1:
Add 3 Subroutines in brawlbox. 2 of these subroutines will be Action override Entry and Action override Exit and you can have anything in these as long as they are not empty.
However one of them MUST have 4 “nop” since we will make the nops till completely diffirent later!
(http://i.imgur.com/M5Vkfb7.png)

Now add 3 subroutines command in any subactions that calls those 3 new subroutines! You will remove them later, but they are there so the subroutines will not disappear when saved
(http://[url=http://i.imgur.com/8GFCtnw.png]http://i.imgur.com/8GFCtnw.png[/url])

Step 2:
Save the PSA and reopen it in brawlbox just to check everything is there.
If everything is there, Save it again but as a copy, so you have 2 of the same PSA! This can be helpful when you will look at the program!

Step 3:
Open up Tabuu and open up your PSA in it
(http://i.imgur.com/oOHGL5k.png)

The one in the squares are the one that has a “special offset name” and we need to take 2 of them! You need to take the once that has Article Paragrapfs/Float Points, or else you will not be able to add them back!
A tip if to follow top to bottom, so I will use “Punch” and “Explode” as special offset name (Ganons B and Side B Floating Points)
Go down to Data>subroutines and find your subroutines and take note of all 3 Offsets for them!
(http://i.imgur.com/mA3yVyn.png)

They are kinda easy to spot cause they all have Asynchronous Timer if you used “nop”.
The offsets for me will be 1CF00, 1CF28 and 1CF78. The 1CF00 will the new special offset name for me! You will also need to know the third Asynchronous Timer in the new special offset name subroutine, making it 1CF10 for me aswell!
You can use Brawlbox and use calculator and see their decimal offset is

Step 4:
Scroll up to “Header”, right-click it and select Open Hex View…
(http://i.imgur.com/d1vj2ws.png)

Now change the 0x50 and 0x54 hex to the Special Offset Name and the third Asynchronus Timer Hex!
My case it will be 1CF00 and 1CF10
The 0x50 is for Entry and 0x54 is for Exit
(http://i.imgur.com/9RhsEzw.png)

Now go up to the “Names”, right click on it and select “Open Hex View… (Header)” and change the first offset to your first Hex
My case it will be 1CF00
(http://i.imgur.com/4Ym2VeE.png)
(http://i.imgur.com/sEFa9kI.png)

Repeat the progress on the second “Name” but with the second offset aswell! For me it will be 1CF10
(http://i.imgur.com/bzav8Wt.png)

Step 5:
Scroll down to Subroutines again to your new “Special Offset Name” and right click Open Hex View… on the first Asynchronous Timer
(http://i.imgur.com/umGF58H.png)

Change the first 0x0 Offset to your Action ID you want to have and the 0x4 to your Subroutine offset you want to be “Entry Override”
I will use Action 105 and my offset 1CF28
(http://i.imgur.com/x1uERt4.png)

(its hard to see in the dark blue)
Now open up the Second Asynchronous Timer in that Subroutine and enter “FFFFFFFF 00000000”
(http://i.imgur.com/iW26fBc.png)

Repeat now it on the third and fourth Asynchronous Timer! but in the third one make sure that you are using the second subroutine offset instead! In my case it will be 1CF78

Step 6:
Scroll all the way up, right click on the file and save! It will freeze but don’t worry, it will save everything!
Now open it up in brawlbox and you will see this!
(http://i.imgur.com/NqfVtuM.png)

Now you have added Action Override both Entry and Exit into your PSA! (despite the wrong names! You will be able to change the name later but remember which one is which)
Now you can go to the subroutines commands in the subaction and removes those and save!
Do you think its done? Yes, the Action Overrides will work fine in game, but do you remember the Special Names we took in the beginning? We need to add those back! If you used an attack that’s been using those, it will freeze!


PART 2

Step 1:
Open up your Backup and extract the floating points! Since I used Ganons B and SideB, which is “Warlock Punch” and “Flame Choke”. Remember how many Hex they both are using! Ganon B has 0x14 hex and SideB has 0x1C hex. Rightclick on MoveDef (at the top) and Export the Backup as a .Moveset file for later use
(http://i.imgur.com/OrV6GDA.png)

Also remember your offsets for both of the floating points. My is 139532 for Warlock punch and 139556 sideB (in hex 2210C and 22124)

Step 2:
Open your PSA again in Brawlbox, add 2 Subroutines and add “nop” inside it depending how many hex both has! Since one nop is take up 2 Offsets, I calculated that for Ganons B needs 2 Nops and SideB needs 3 Nops ( (the Needed Hex / 4) / 2 Offsets + 2)
(http://i.imgur.com/vyNTM9I.png)

Make sure to add 2 Subroutines commands in any subaction linking to them just like in part1 step1!

Step 3:
Save and Reopen it in brawlbox to give the subroutines offsets!
Scroll down to your new subroutines and take notes of their offsets! Mine is 118512 and 118536 (in hex they are 1CEF0 and 1CF08 )
(http://[url=http://i.imgur.com/O9tpuFF.png]http://i.imgur.com/O9tpuFF.png[/url])

Now scroll down to “data” folder, press on it and go to “extra offset”
(http://i.imgur.com/H33aP9r.png)

The first offset were used by Ganons B and the second was used for SideB! We need to manually correct them! Take the offsets and remake them to Hex! So -208994432 will be F38AFF80 in hex!
And now scroll up all the way to the top and export it as a Moveset file
(http://i.imgur.com/jJ7obSK.png)

Step 4:
Now open up the moveset file in a hex editor and “Find hex” the one that you need, since I needed to fix the F38AFF80, I search for it!
(http://i.imgur.com/X5PRmbQ.png)

Bingo!
Now I will write down my subroutine offsets to it instead! Mine was 1CEF0 and 1CF08 from step 3
(http://i.imgur.com/IYjBZ6c.png)

Step 5:
Now save it and export it back to your PSA. Go down to the “Subroutine commands” in your Subactions, remove them and Save and Re-open it! This step is to prevent a crash further ahead!
Now you have 2 new ExtraParams! Named ExtraParam0 and ExtraParam1. Param0 is for Warlock Punch and Param1 is for Side B!
Please note their new Offset on the Params
(http://i.imgur.com/3yPPBRY.png)

My warlock punch new Offset is 8184 (1FF8 in hex) and my SideB new offset is 8208 (2010 in hex)

Step 6:
Now scroll to the new offsets + 20 to your Params! So my 1FF8 will be 2018
(http://i.imgur.com/Ar8zzSC.png)

Now open up the backup Moveset file in the hex editor aswell and go to their floating points for each one! Mine was 2210C in step1 (+20 = 2212C)
Now Mark the hex that’s been used in it! Since it was 0x14, I need to copy 18 (0x0 counts) and copy-paste over to the new PSA
(http://i.imgur.com/EDmRIL4.png)
(http://i.imgur.com/ou9QUjQ.png)

Just like this!
Now repeat it for the second floating points aswell!
(http://i.imgur.com/U33xDpI.png)

Step 7:
Once it done, save your Moveset file and import it for the last time in brawlbox!
(http://i.imgur.com/uyZ8PxL.png)

And now it’s done! Everything is fixed and you have action override in it too!

Be creative! Have fun!