How to give a character Special Throw with Module Hacking
For Experts Only
(http://i48.tinypic.com/2dwc1mp.jpg)
Note:
This tutorial will be rated Expert and are only to those who have experience with PSA and some knowledge about Module itself!
Also, this Tutorial are a Beta right now! also, GANONDORFS METHOD[3][16] WILL
FREEZE THE GAME AFTER THE CHARACTER HAS DONE IT'S ENTRY!
still, I used ganondorfs Method[3][16] in the tutorial *insert devil laugh here!*
Anyhow, let's begin the tutorial! In this tutorial, I will make Ganondorf Side B grab to Luigis B attack but it will cover up the basics so you can also make different grabs too. It might mess up some other attacks too like Ikes Final Smash where the opponent is in the middle in stage instead for ontop!
I hope you will get the idea of how it works! I tried to explain how you can make your
Own, not just with Ganondorfs Special Throw
also, I did the tutorial like this: everything in green is the basic steps while everything in gray under the green is how I did it with my luigi and Ganondorf!
Stuff you need
• Latest Version of Brawlbox
• Module Editor 2.2 (http://www.mediafire.com/?v8xmy4jjdom21a6)
• Module Editor 3.1 (http://www.mediafire.com/?7d057s9061u1rq8)
• Hex editor (Hex Edit recommended)
• Calculator
• Module Files (.rel), the one with grab and your characters .rel, preferable 2 of your character rel!
• Your FitCharacter.pac (PSA) and FitCharacterMotionEct.pac
Okay! Let's start this! It will pretty much be a maze in this tutorial and I hope I don't give you a headache! I also recommend to use "Save As" and save as a new cause it will be a lot of open and closing files around! Just in case something gets wrong you can always step back!
Step 1
Open up your Module Editor 2.2 and open both your Module files in them!
Go to Module -> Objects -> FtCharacter and scroll down to Method[3][16] in your Module file that you will use as a grab! Take a note of both Offset, their size on both Modules
All Specials throws are stored there! Also, take care of the Size of the Method! For me (Ganondorf), it has the size of 250 in hex!
Go and check on your original character Module -> Objects -> FtCharacter --- Method[3][16], if it are red, we have to add a new Method. If it are already one, we need to replace it!
From now one, I will call ModuleA for the character you will give the throw and ModuleB for the one that has the Grab you will be using!
Step 2
Close ModuleA in Module Editor 2.2
Instead, open up ModuleA in Module Editor 3.1 and open up Section1 with Memory Viewer! Use the Resize button and increase it with ModuleB's Method[3][16] Size
Notice the Resize buttom? We have to resize it! As you see, it's 10F48 hex big for me and since we are adding a new method, we need to have more space!
For me, I will add 250 hex to it so my new method will have some space! Meaning 10F48 + 250 = 11198 (yes, we are talking heximal, not decimal)
Write the new size of the Section and hit the resize buttom!
There! This will add "00" at the end of the section! We will use those "00" to add the New Method[3][16]
Step 3
Save as a new Module File and close the ModuleA in Module Editor 3.1
Instead, open ModuleA in Module Editor 2.2 again but this time, go to Module -> Objects -> FtCharacter --- Method[3][1] instead for [3][16] and open it up! Take also note of it's Offset
There is a Branch command here we need to correct and it's ALWAYS the first Branch Code! If the ModuleA already has a Method[3][16], it has a Negative Number like this Luigi has! (-0x38BC). If ModuleA doesn't have a Method[3][16], it will have positive numbers but have m1B[01] on Right side instead (Relocation Data). We have to change those to get our new Method[3][16] to work ingame!
Also, remember the offset of your Method[3][1]! You need it in next step! My offset is BB8C
Step 4
Open up ModuleA in Hex Editor and scroll down to your added "00" when you resized section1! It shouldn't be hard to miss!
My offset are to Luigi is "11014". Remember your offset! (or just remember the offset in step2 + CC, it would be for me 10F48 + CC = 11014)
Step 5
Scroll up again to the offset that were beginning of Method[3][1] you remembered from step3! but move 4 Hex forward
As you remember, my offset were BB8C which is the beginning of Method[3][1] but the hex second in the Method[3][1]! At Offset BB90!
Step 6
Time for some Math!
You need to calculate the answer by subtracting the new Method[3][16] offset with this offset!
For me, it would be "11014 – BB90 = 5484"
So in the hex I need to edit: "4B FF C7 44" to "48 00 54 84"
If your Module has already one Method[3][16], it will have "4B FF XX XX". If it hasn't, it will have have "48 00 XX XX"!
Remember to change 4B FF to 48 00 if it has it! That will prevent the offset you gave is Negative!
Step 7
Open up ModuleB in Module Editor 2.2 and go to Module -> Objects -> FtCharacter --- Method[3][16]! Take note to it's Offset and Size again
The only thing we need is the offset to on the Method! Since I will give Luigi Ganondorfs SideB ground throw, this is Ganon's Method[3][16]. The Offset I will go to is 8784! Also, remember the size! It's 250
Step 8
Open up ModuleB in Hex Editor and scroll down to the Method[3][16] offset!
For me, I had to go to Offset 8784 since I am using Ganondorfs Method[3][16]
Step 9
Now, select the whole Method[3][16] and copy it.
The whole Method is selected since it is 250 big!
Step 10
Go to your ModuleA in your Hex Editor and scroll down to your new Method[3][16] offset, select the same size of empty "00" like yours ModuleB method[3][16] and Paste it
Since my Luigis's new Method starts at 11014, I pasted Ganondorfs Method in there!
Step 11
Save your ModuleA in Hex Editor, close it and open it in Module 3.1 instead!
Step 12
This step is really tricky! The hardest in the tutorial! Go to Section5 in its memory viewer!
Now you should look after its relocation data! We need to change it to the new offset! But as you see, it's a maze!
there is several ways to find it but I will go with the easiest one! The one you will have to change is above "FtCharacter".
(http://i45.tinypic.com/30c5f7b.png)
Here is a pic! There I have selected is the Method[3][16] relocation data! Memories the pattern! The relocationdata will always be 14 hex BEFORE the FF FF FF 9C!
Note this, if your character has already Method[3][16], it will have ID of your character Module. If not, it will have the ID of 1B which is Sora_melee.
Step 13
If you found it, change the "Addend" to your new Method Offset MINUS CC and make sure the ID is set to your character Module ID! Leave the other things untouched.
For me, it would be 11014 – CC = 10F48. Also, Luigis Module ID is 63 so everything is now set!
13b. NOTE! Do only this step if your character didn't have a Method[3][16] from the start!
open Section1 and go now to your Method[3][1] + 4 offset (to the offset you changed at step6)! But you have to subtract it with CC to get the right offset! When you are on the right offset, delete the Relocation Data!
Step 14
Open up ModuleB in a new Module Editor 3.1 window and go to the Section1!
Go down to its Method[3][16]offset – CC
Since I am using Ganondorfs Method[3][16], I go down to its offsets – CC. that would be 8784 – CC = 86B8
Step 15
Now, go to Section1 of your ModuleA in Module Editor 3.1 and scroll down to your new Method[3][16] offset – CC! it should be near the end and now you should be at same place with your ModuleB
Since I am using Luigis Module File as ModuleA, I have my new method at 11014 – CC = 10F48 and now I have Luigi and Ganondorf at exactly same spot on both Method[3][16]!
Step 16
Now, add all the relocation the ModuleA is missing with same information! Don't miss one!
Now I had all the relocation data to each correct Asm command! Ganondorf only had 3 to be added to Luigis! You simply press on a Hexdata that Luigis new Method[3][16] is missing, add a new relocation data and do it the same as Ganondorfs Relocationdata for that Hex!
Step 17
Save your ModuleA, close Module 3.1 and open it in Hex Editor the last time!
Scroll down to your New Method[3][16]! Time to give our Throws it's Action!
Now for the Last thing we will do in Module Hacking! That's give change the Action to the one you want it to be!
There are 3 kind of action that will show up! First off is the Action that the opponent will do, second is the action the grab can work on and the third is what action you will do if you successfully grabbed someone! The actions are mostly load by "2C 03 XX XX" there the XX XX is the action. It can also be "2C 00 XX XX" and "38 80 XX XX" but "2C 03" is much more common to be used to action!
(http://i50.tinypic.com/dmxnqr.png)
A perfect example what I mean is with this picture with ganondorfs Method[3][16]!
In Purple Box = UpB
In Gray Box = Grounded SideB
In Black Box = Aired SideB
In each Green box = All the action the opponent will do! (they need to have the same in the Catch command in PSA)
In each Red Box = All the action the grab can only work in!
In each Blue Box = All the action you will DO in a successful grab!
So I ignored the UpB throw and Made all both Ganondorfs SideB to Luigis B but on ground it will do DownB and in Air it will do UpB
Step 18
Save it and Close it! You are done with hacking the Module File!
Finally! You are done now with the module hacking! But it's the PSA left!
I assume you are already good with PSAing so this should be a piece of cake!
Last Words
But I need to tell you something! You need the "Throwed" animation to the special throws! They are one character speficik to each throw characters! Just export the animation and import them to your FitCharacterMotionEct with same name and you should be fine!
Also, I
Will update this tutorial with more pics and using a different grab!
I leave the PSAing up to you! If you are cursious about what PSA code I am using to Luigis Ganondorf SideB throw, check below!
Sorry but you are not allowed to view spoiler contents.
Have fun with Fresh New Special Throws
Since Special Grabs are a big thing, I have decided to temporarily sticky this topic. The sticky might stay though.
Cool! Is this possible for things like Final Smashs to have this? Like if it hits then you will go into the actual FS?
just to update! since BB hasn't update itself since the last time, I haven't Given out the Aerial Grab tutorial yet.
worse part, i still haven't found a way to make the opponent follow the ThrowN bone! making the grabbed person hover either in air or on your TopN bone!
but I know it's something to do about subactions Thrown(all directions) or something flag I have missed! I really hope I dont have to nullified one of the normal grabs to make the special grab "opponent-follow-the-ThrowN-bone" thingy
I think it might be because you're using Captain Falcon's grab coding. His Special grab is a little wonky. Try using Ganondorf's grab coding on his Side Special if you can.
At least you're getting closer. =D
Do ya think its possible to have Wolf do a similar FS as Ike? Like so he grabs the opponent tosses up (if he can grab. if not it cancels like Ike's would) then hits them alot sends them down then launches them using this?
Do you have any ideas that can help with it? I really want Wolf to have a FS like Ike
i tough it would be a generic hexing every character needed so your saying each character needs its own stuff? that really is off putting since ppl like me who dont know how to do that will never get that working lol.
Random question. I'm still working on Solidus and getting his tentacles to grab, but the type of special grab I want would look much better with the Capture__Snake__ actions which are already present in Solidus' file. Would I still need to do the Fighter.pac stuff if I don't want/need Falcon's capture animations?
I Finally updated the guide! however, the tutorial is only a beta cause I used a Method[3][16] which is bad! (it's ganondorfs!)
and it's lacking of pics!
I will update it with a better Method[3][16] later with more pic! I hope you understand how it works now however
Can you post a video of the results of what you can do with this (meaning a sample move), I'm still confused as to what you get when your done...