Home Gallery Resources The Team Rules chat Login Register
  Show Topics
Pages:  [1] 2
1  Help & Tutorials / A/A Tutorials / [Advanced] Adding Actions on: November 15, 2022, 12:04:07 AM
I know that not everyone is following the programming section, so I decided to create a topic here so people can found it easier.

I will try to make it into a KCMM Friendly post guide, but right now you can check here for the full guide. Both with pictures and detailed information of what needs to be done:
https://docs.google.com/document/d/11Hq3RIDt9HvH87QEnnpjE6VMyEF9ab-FcIexqTnBsFg/edit#
2  Help & Tutorials / A/A Tutorials / How to add New Action Overrides Entry/Exit to those who dont have 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!


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


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


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!


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…


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


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



Repeat the progress on the second “Name” but with the second offset aswell! For me it will be 1CF10


Step 5:
Scroll down to Subroutines again to your new “Special Offset Name” and right click Open Hex View… on the first Asynchronous Timer


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


(its hard to see in the dark blue)
Now open up the Second Asynchronous Timer in that Subroutine and enter “FFFFFFFF 00000000”


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!


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


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)


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 )


Now scroll down to “data” folder, press on it and go to “extra offset”


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


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!


Bingo!
Now I will write down my subroutine offsets to it instead! Mine was 1CEF0 and 1CF08 from step 3


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


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


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



Just like this!
Now repeat it for the second floating points aswell!


Step 7:
Once it done, save your Moveset file and import it for the last time in brawlbox!


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

Be creative! Have fun!
3  Help & Tutorials / A/A Tutorials / How to add Working SubActions on: March 11, 2014, 02:41:05 PM
ever tried adding Subaction but when you using them they dont work like they should?

thats because it just not adding subaction to the PSA, we need to increase the Subaction count aswell!

this guide will be reaaaally simple and short, but little tricky!

What you need:
* Your PSA and a clean FitChar.pac if you forgot the original Subaction count
* Brawlbox 68b which can add Subaction, also view its ID
* the Module thats used for the Character
* a Hex Editor
* a calculator that can swap between Hex and Dec

1. Open up your PSA in Brawlbox and look at the last Subaction ID that you added, remember it!
also, look up the last Subaction ID of the Original Subaction (you can look up a clean FitChar.pac if you forgot which it was)

2. Convert the ID for the last added Subaction and the last original Subaction to hex! when add "1" to it to get the ID you need!

Example: Donkey Kongs Last Subaction ID: 515 = 203 in hex. 203 + 1 = 204 in hex
Donkey Kongs Last added Subaction: 525 = 20D in hex 20D + 1 = 20E in hex

3. open up Hex Editor and Search for "38 A0 XX XX" there XX XX is the Original last Subaction ID! meaning in DKs case, I would search for "38 A0 02 04"

4. here is the tricky part, there is 8 places we need to change to the Last Added Subaction ID!
they are always pretty early on the list and are grouped together!
DKs First ID to change is at 0x0BEC and the last is at 0x12E4. so dont be below 0x2000 and search!

Change them all to the Last Added Subaction ID!
in DK case, I would change all to "38 A0 02 0E"

5. Save and now you are done! all your added Subactions would now work! Kirby Dance
4  Help & Tutorials / A/A Tutorials / How to add True Glide/Multi Jump/Crawl [updated] on: March 07, 2014, 10:57:33 AM
so, I heard you all wanted a tutorial of how to add True Glide, Multi Jump or a Crawl to your Character!
definition of "True" is that its using the same method as the other Glide, Multi Jump or Crawl and be customized into their "Misc Crawl/Multijump/Glide" section in their FitCharacter.pac and with Minimal PSA work

True Crawl


True Multi Jumping and True Glide


So, first of is the list we need of:
* Your FitCharacter.pac
* Brawlbox 68b
* a Hex Edit program, recommend HexEdit.
* Calculator, being able to convert Dec to Hex and viceversa
* a way to edit a characters IC! Recommend using BrawlEx's FighterConfig.dat! if you using it, you need to use BrawlEx clone Engine
* a character with one of those you want to use, only optimal if you want help

1. Open up your PSA in Brawlbox 68b, go to subroutines and add one!
this subroutines will be fake and will be deleted later, but add some stuff in it so its not empty! it can be anything! recommend adding 2-3 commands

2. go to one Subaction and add the Command "Subroutine" and link it to your "Fake" Subroutine!
you will delete this Command later so dont worry about it that will it be in the way later

3. save it or "save as" if you want to keep a back-up! close your PSA in Brawlbox 68b and reopen it again!

4. Check if your Subroutine is there, if it isn't there, redo 1 to 3. if its there, take note of your "Fake" Subroutines "IntOffset" and remember it!


5. scroll down and mark the folder "Misc Section" and look up Offest for "Collision data". you will using this Offset as a "search". if your character doesnt have CollisionData, use something else.


6. Export now the "MoveDef_" file, Open now your Hex editor and open MoveDef_ in it!
Convert the Offset for Collision data to Hex and Search for it

7. Now, remember your "Fake" Subroutine's Offset, convert it to Hex and put it in one of the Colored boxes!

if you want to add Multi Jump, put your offset in Red Box
if you want to add Glide, put your offset in Green Box
if you want to add Crawl, put your offset in Blue Box
Black box is Collisions Offset.

8. Save it and close the Hex Editor.

9. Export the MoveDef_ file into your FitCharacter.pac, save it, Close and reopen! scroll down and look inside Misc Section and see if you got a "?" with the name Misc Multi Jump, Misc Glide or Misc Crawl data! if you have, you have done everything correct so far! now it depence of what you wanted to add.


10 Crawl. press on Misc Crawl and enter in Forward Accelation and Backward Accelation with the values you like! it might look little mess up but you can see on one other crawler data and see how that is! you cant Export and Import this data!

10 Glide. Press on Misc Crawl and look up its data! this data can be exported and imported without any problem! to make the job easier, you can export the Glide data from either Metaknight, Pit or Charizard's and import it to your glide data to save job!

10 Multi Jump. press on Misc Multi Jump and add the value you want to add! you can follow of a example of another multijumper! it appears that "5" jumps (unless someone tries to add more) is the most so make sure you have [ 0]-[4] inside "hops" and correct the values you want to and delete if its more than you want!
however, now inside its unks section, you dont have to be surprised if its over [3000], simply remove all those and keep the Unks like this!

if it isnt those value, add them!
Note: please dont worry if Brawlbox freezes if you remove all those 3000. it can take some time when it does it! just have passion and wait
This Data cannot be export and imported!

11. now when you have add all the values. go back to that subaction you added subroutine command in step 2!
delete it and save and reopen it in brawlbox!

12. double check if you still have the Misc data and have the same value that you added, if its still there and everything is correct. you are done with the Main Thing! now your character can Glide, Crawl or Multi jump!
but its not done yet! it needs its Subaction and Animation for it!

13 Crawl.

The Subactions thats used by crawl is these 2! check out others FitCharacter.pac that already has Crawl and see how they did!

13 Glide.

The Subactions thats used for Glide is these 6! Check out others FitCharacter.pac that already has Glide and see how they did!

13 MultiJump.

The Subactions thats used for Multijump is these 5! Check out others FitCharacter.pac that already has Multi Jump and see how they did!
also, go to attrebuts and change 0x60 to how many jumps your character will have!
one is the first jump and the rest of the jump is multijump! appears that the maximun of Multijump is 6


14. dont forget the animations for all those Subactions!

Also, Note this! Crawl and Multi Jump can be used right away, but Glide needs little work! you need to do something that makes it use their IDs!
Glide need to use the Start Glide ID "132" (0x84 in hex)
dont know the best way to do this

15. the last thing, we need to change their IC to make them being able to do it!
this Method is using BrawlEx's FighterConfig.dat

if you added Crawl, set "hasCrawl" to true
if you added Glide, set "hasGlide" to true
if you added MultiJump, set "AirJumpCount" to "2" (yes 2! not how many jumps it has)

And thats it! now you have Crawl, Glide and/or Multijump character! Have fun with it!  Kirby Dance
5  Super Smash Bros. Brawl Hacking / Programming / Let the Swap Begin! (under constructions!) on: February 25, 2014, 10:34:31 AM
note: the project is not done and will include much more modules until I found a fix for a bug!
Also note that Wii's Module Memory isnt big so we cant transform any character at the moment


https://www.youtube.com/watch?v=Z77UL_4Gyco


Hi and welcome to the project Let the Swap Begin!
some info before I continue on the real deal!
This "Modules" are pure edited of the PW's Modules of the Clone Engine "BrawlEx", meaning that you need BrawlEx for it to work (both over an existing and over "extra clone" slot).
If you dont know what it is or dont have it, I suggest to go to there first!
http://forums.kc-mm.com/index.php?topic=65113.0

How to Set it up
first you need to set up both character to a slot together with character 1 and character 2 with the BrawlEx Engine!
I assume you already know how to set up a BrawlEx slot, otherwise head here first: http://forums.kc-mm.com/index.php?topic=65113.0

PSA content
so, lets start with the PSA editing! first you need 2 PSAs, one each for the characters.
the only thing we need to edit is the enable the Transforming and its pretty simple!
take a Action/SubAction you want and give it the command "Terminate Instance" anywhere in there.
this command does that every time you use that Action/Subaction and on that frame, the character will start transform to the other character!

Module Editing
I have already done the heavy work for you in the Module Editing so all the left you have to do is just Customize it!
how to Customize it is to open the Module in PW's Module Editor 3.3!
you will notice 2 more extra Sections if you have seen the BrawlEx before it!

so lets edit the Action you want the Transformation will use (when they appear after transform)
open up Section 9 in the Memory Viewer and go to offset "0x38"!

here is the Action you want to be used when you transforming into this character in the Black Box!
simply editing the last 2 Hex into the Actions Hex number! in this pic, everytime this character appears after the Transformation, the Down B (277 in Dec, 115 in Hex) is used!

if you want to edit the Grapfic that will be under transformation, open up Section A in Memory Viewer!
and scroll down to offset "0x180" and "0x184"

the offset 0x180 (red box) is calling what "ef_fighter" ID it will load!
and offset 0X184 (green box) is calling what Grapfic inside the "ef_fighter" will load!
simply change the last hex of both offset to your choice!
in the pic example, it will load ef_ganon and his "Entry" grapfic!

Slot Config File
the only thing in the BrawlEx files that needs to be edited!
first you need to set the 0xC to "1" and give 0x13 this character ID and 0x17 the Next character ID!

0xC (Black box) needs to be set to 1
0x13 (green box) is this SlotConfig ID
0x17 (red box) is the next SlotConfig ID
it needs to be on both characters SlotConfig files! meaning 40 -> 3F and 3F -> 40

in this Pic example, this is "SlotConfig40" and his first ID is 40 and his next ID is Fighter 3F!
in "SlotConfig3F", its first ID is 3F and next ID is 40!

The rest of the work should be normally done by the BrawlEx clone itself (all the config files + the edit on the Module ID inside section 8 )

Troubleshooting

the character works ingame but their transforming doesnt work!
make sure it has the "Ternimate Instance" on its PSA on the Action/subaction you want it to be! on both the character!

one character wants the transforming but the second character doesnt
see the above answer

when I select the slot on the CSS, the wii freezes like 1-2 seconds after but the music is still going
that means the modules you used together are too big! meaning they are out!
It will be fixed when we find a way to increase the module memory!

The wii freezes when it tries to load a stage with the transforming character with!
I honestly dont know what causes it, but as soon I know what I will tell you what!

Known Bugs

*Using the same Soundbank on both the characters will make the second character silent the first time on transforming, its fixed however when you transform to it second time!

*the Character Portrait doesnt change/updates with the character transforming unless over a already transforming character! meaning it will use the first Character's portrait through the match!

Download!
note: at the moment, I am trying to put more character on download, as soon I find some bugs on 2 modules!
http://forums.kc-mm.com/Gallery/BrawlView.php?Number=35845 (Marth and Jigglypuff Modules)

Thanks to:
A huge thanks for PhantomWings (and all who helped him) by making BrawlEx possible!
also thanks to him for his notes on the Modules on the transforming part and his Module Editior programs!
6  Help & Tutorials / Help / the best "Hooker" for Wiiflow/Usb Loader GX? bad pixelsrow! on: January 11, 2014, 04:03:05 PM
hi! I need some help!

I recently just got a NTCS version for my PAL Wii because my PAL disc starting to be bad

so I set it up the game with ocarina codes that is needed for hacking/machinimating and playing the NTCS. it works wonders, except one thing!

if I play with the hooker disabled, I cant play with hacks but it works wonders!
if I select ANY of the hooker, I can play with hacks but the I can notice some grapfical errors, like 10 small wrong pixels rows on the screen and it appears before the first loading screen enters!

what should I do to make the pixels go away?

EDIT: Found the problem, I used same code twice xD
locking my thread
7  Help & Tutorials / Help / Brawlbox 68a-d freezes constantly at some points! I really need Help! on: August 16, 2013, 02:59:51 PM
okay, I hope someone knows the answer for this and can help me out!

here it is, all the latest brawlbox (68 a to d) freezes when I close the preview screen or loading a MotionEct file in the Preview screen!
Brawlbox 67b and under works at its should, its only 68a-d thats been glitchly!

stuff like Jigglypuff Sleephat, Metaknights Cap, FranklinBadge works great! no freeze there!
but stuff like Ikes sword, assist thropy, dededes jethammer andAll character (Example Mario, Jigglypuff and Dedede) get a freeze either loading a MotionEct file in the Preview or close the preview!


HOWEVER, if I run the brawlbox in 256 bits color, everything works as it should!
warning containing trippy colors!

I have installed NET frameworks several times and have the right version.
My Computer spec is:
Windows 7 Proffessional 64bit
Service Pack 1
Intel Core i3 CPU M 330

Laptop!

Please, I really need help! If you want more computer spec, feel free to ask speficiky!
8  Super Smash Bros. Brawl Hacking / Attacks and Animations / Pikazz PSA Showcase - Restarted personal PSA with Transformation (+2 tutorials) on: May 31, 2013, 05:39:59 AM
(this OP is in beta stage)

okay, this PSA thread will actually be a bit special from what are expectedand I hope my thread doesnt get locked because of it
long story short, I am not the guy that complete a completely new PSA with everything changed and ect!
I am more of a exploring guy to find out something amazing and do stuff that arent made yet or something like that and post a tutorial and/or a download hack for that speficik attack.

Hacks
-nothing yet-

Videos
Pikamaxi - the Dream Knight PSA (Beta) [Brawl Hack]


Tutorials
Special Grabs
Add True Working Glide, Crawl and Multijump
Add Working Subactions
9  Super Smash Bros. Brawl Hacking / Stages / Revolution ongoing! on: November 10, 2012, 12:51:19 PM
not sure if someone have figure this out already, if so tell me

Revolution!


I will discover the truth and what's behind this. I have theories!
that stage is a beta, I know more now than I did that video but it's something atleast!
10  Help & Tutorials / A/A Tutorials / [Tutorial] How to do a "Special Grab/Throw" with Module! (Experts Only! BetaTut) on: August 25, 2012, 03:20:10 PM
How to give a character Special Throw with Module Hacking
For Experts Only


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
•    Module Editor 3.1
•   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”.


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!


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!
In Action 274:
Bit Variable Clear: RA-Bit[16] = false
Bit Variable Clear: RA-Bit[17] = false
If On Ground:
   Posture 03
   Posture 04
   Character Specific 01
   Basic Variable Set: RA-Basic[0] = 0
   Change Subaction: sub action=SpecialSStartG
   Change Action action=0, requirement=Animation End
   Additional Change Action Requirement On Ground
   Change Action action=14, requirement=In Air
   Set Air/Ground: Undefined(15)
Else
   Posture 03
   Posture 04
   Character Specific 01
   Basic Variable Set: RA-Basic[0] = 2
   Change Subaction: sub action=SpecialAirSStartG
   Change Action action=14, requirement=Animation End
   Set Air/Ground: Undefined(17)
   Change Action action=25, requirement=On Ground
   Additional Change Action Requirement Value Bit is Set: RA-Bit[17]
End If

In Action 277:
Set Edge Slide: Can't drop off side of stage
Synchronous Timer: frames=1
Change Subaction: sub action=SpecialSG
Set Air/Ground: On Ground
Change Action action=14, requirement=In Air
Change Action action=0, requirement=Animation End


In Action 276:
Synchronous Timer: frames=1
Change Subaction: sub action=SpecialAirSCatchG
Change Action action=14, requirement=Animation End
Additional Change Action Requirement In Air
Change Action action=0, requirement=On Ground
Additional Change Action Requirement Animation End


In Subaction SpecialSStartG Main:
Throw Specifier:ID=1, Bone?=0, Damage=4, Direction=0, KnockbackGrowth=10, WeightKnockback=0,BaseKnockback=100, Element=0, UnknownA=1, UnknownB=0, UnknownC=1, UnknownD=0, SFX=2, Direction?=3, UnknownE=true, UnknownF=true, UnknownG=0
Asynchronous Timer: frames=15
Catch Collision 2: Value-0, Value-0, Scalar-5, Scalar-0, Scalar-8, Scalar-4.5, Value-E7, Value-1, Value-2,
Catch Collision 2: Value-1, Value-0, Scalar-1, Scalar-0, Scalar-8, Scalar-4.2, Value-E7, Value-3, Value-2,
Bit Variable Set: RA-Bit[16] = true
Special Offensive Collision: Id=2, Bone=0, Damage=12, ShieldDamage=0, Direction=25, BaseKnockback=60, WeightKnockback=0, KnockbackGrowth=100, Size=6, Z Offset=0, Y Offset=10, X Offset=7, TripRate=0%, HitlagMultiplier=x1, SDIMultiplier=x1, Flags=21030293
Special Offensive Collision: Id=3, Bone=31, Damage=12, ShieldDamage=0, Direction=25, BaseKnockback=60, WeightKnockback=0, KnockbackGrowth=100, Size=4.8, Z Offset=6, Y Offset=0, X Offset=0, TripRate=0%, HitlagMultiplier=x1, SDIMultiplier=x1, Flags=21030293
Asynchronous Timer: frames=30
Terminate Catch Collisions
Terminate Collisions
Bit Variable Clear: RA-Bit[16] = false

In SpecialAirSStartG Main:
Throw Specifier:ID=1, Bone?=0, Damage=4, Direction=0, KnockbackGrowth=10, WeightKnockback=0,BaseKnockback=100, Element=0, UnknownA=1, UnknownB=0, UnknownC=1, UnknownD=0, SFX=2, Direction?=3, UnknownE=true, UnknownF=true, UnknownG=0
Asynchronous Timer: frames=18
Catch Collision 2: Value-0, Value-0, Scalar-5, Scalar-0, Scalar-6, Scalar-6.5, Value-E8, Value-2, Value-2,
Catch Collision 2: Value-1, Value-0, Scalar-5, Scalar-0, Scalar-11, Scalar-6.5, Value-E8, Value-3, Value-2,
Bit Variable Set: RA-Bit[16] = true
Special Offensive Collision: Id=2, Bone=0, Damage=12, ShieldDamage=0, Direction=25, BaseKnockback=60, WeightKnockback=0, KnockbackGrowth=100, Size=6, Z Offset=0, Y Offset=10, X Offset=7, TripRate=0%, HitlagMultiplier=x1, SDIMultiplier=x1, Flags=21030293
Special Offensive Collision: Id=3, Bone=31, Damage=12, ShieldDamage=0, Direction=25, BaseKnockback=60, WeightKnockback=0, KnockbackGrowth=100, Size=4.8, Z Offset=6, Y Offset=0, X Offset=0, TripRate=0%, HitlagMultiplier=x1, SDIMultiplier=x1, Flags=21030293
Asynchronous Timer: frames=28
Bit Variable Set: RA-Bit[17] = true
Asynchronous Timer: frames=31
Terminate Catch Collisions
Terminate Collisions
Bit Variable Clear: RA-Bit[16] = false


In Subaction SpecialSG Main:
Throw Specifier:ID=0, Bone?=0, Damage=9, Direction=361, KnockbackGrowth=90, WeightKnockback=0,BaseKnockback=60, Element=13, UnknownA=1, UnknownB=0, UnknownC=1, UnknownD=2, SFX=B, Direction?=3, UnknownE=true, UnknownF=true, UnknownG=0
Throw Specifier:ID=1, Bone?=0, Damage=4, Direction=0, KnockbackGrowth=10, WeightKnockback=0,BaseKnockback=100, Element=0, UnknownA=1, UnknownB=0, UnknownC=1, UnknownD=0, SFX=2, Direction?=3, UnknownE=true, UnknownF=true, UnknownG=0
Asynchronous Timer: frames=16
Super/Heavy Armor: State=None, Tolerance=0
Asynchronous Timer: frames=30
Throw Applier: Value-0, Value-3E, Variable-RA-Basic[2], Variable-RA-Basic[3], Variable-RA-Basic[4],
Asynchronous Timer: frames=38
Bit Variable Set: RA-Bit[23] = true
Asynchronous Timer: frames=40
Super/Heavy Armor: State=None, Tolerance=0

In Subaction SpecialAirSCatchG Main:
Throw Specifier:ID=0, Bone?=0, Damage=12, Direction=361, KnockbackGrowth=82, WeightKnockback=0,BaseKnockback=40, Element=3, UnknownA=1, UnknownB=0, UnknownC=1, UnknownD=2, SFX=B, Direction?=3, UnknownE=true, UnknownF=true, UnknownG=0
Throw Specifier:ID=1, Bone?=0, Damage=4, Direction=0, KnockbackGrowth=10, WeightKnockback=0,BaseKnockback=100, Element=0, UnknownA=1, UnknownB=0, UnknownC=1, UnknownD=0, SFX=2, Direction?=3, UnknownE=true, UnknownF=true, UnknownG=0
Asynchronous Timer: frames=18
Set Momentum: Scalar-0, Scalar-5,
Asynchronous Timer: frames=59
Throw Applier: Value-0, Value-3E, Variable-RA-Basic[2], Variable-RA-Basic[3], Variable-RA-Basic[4],


Have fun with Fresh New Special Throws
11  Help & Tutorials / Help / Desperate after help about shading on: May 11, 2012, 04:37:23 AM
well, I need some help about shading.

I trying to make jigglypuffs eyes moveable with SRT0.
I took Bowsers Material and Shading and make them fit to jigglypuff.

but i got this:

you see the eyes is fully working but the shading isn't great. it's has that color error, it's gets yellow in Luigis mansion and blue in halberd.
how can I make the easiest way to make the shading as same as jigglypuffs original shading but I still have the eye motion.

need help kinda ASAP D:
thanks on beforehand
12  Super Smash Bros. Brawl Hacking / Programming / Let's look into Module Fíles (.rel) - Defensive Collision is now! on: May 04, 2012, 06:58:26 AM
hi, I made this thread so we can collect all the Module information, try to understand that and how to rebuild them.
this is a very hard task, the legends of brawlhacking Dant and Phantomwings looked into it much but they desiced to take a life-long break before they have complete it.
so lets continue their footsteps.

What is Module File?
Module Files (.rel) is there all the information is about characters, stages, menu.
it can example say how many brres one stage will load in a pac, if any event like things that can hurt you in stage load, Characters Articles like Lucarios Aura Sphere.

How much information is it about Module files?
currently not much, only Dant and Phantomwings knows it like 20 times more than us and that sadly true pretty little.
the only things we know is how they work since Phantomwings gave that's information out.
but we know there is ASM in Module Files

Module IDs
IDs:

00 - main.dol?
01 - sora_scene
02 - sora_menu_main
03 - sora_menu_tour
04 - sora_menu_qm
05 - sora_menu_edit
06 - sora_menu_collect_viewer
07 - sora_menu_replay
08 - sora_menu_snap_shot
09 - sora_menu_event
0A - sora_menu_sel_char
0B - sora_menu_sel_stage
0C - sora_menu_game_over
0D - sora_menu_intro
0E - sora_menu_friend_list
0F - sora_menu_watch
10 - sora_menu_name
11 - sora_menu_sel_char_access
12 - sora_menu_rule
13 - sora_menu_simple_ending
14 - sora_minigame
15 - sora_menu_time_result
16 - sora_menu_boot
17 - sora_menu_challenger
18 - sora_menu_title
19 - sora_menu_title_sunset
1A - sora_fig_get_demo
1B - sora_melee
1C - sora_adv_menu_name
1D - sora_adv_menu_visual
1E - sora_adv_menu_sel_char
1F - sora_adv_menu_sel_map
20 - sora_adv_menu_difficulty
21 - sora_adv_menu_game_over
22 - sora_adv_menu_result
23 - sora_adv_menu_save_load
24 - sora_adv_menu_seal
25 - sora_adv_menu_ending
26 - sora_adv_menu_telop
27 - sora_adv_menu_save_point
28 - sora_adv_stage
29 - sora_enemy
2A - st_battles
2B - st_battle
2C - st_config
2D - st_final
2E - st_dolpic
2F - st_mansion
30 - st_mariopast
31 - st_kart
32 - st_donkey
33 - st_jungle
34 - st_pirates
35 - st_oldin
36 - st_norfair
37 - st_orpheon
38 - st_crayon
39 - st_halberd
3A - st_starfox
3B - st_stadium
3C - st_tengan
3D - st_fzero
3E - st_ice
3F - st_gw
40 - st_emblem
41 - st_madein
42 - st_earth
43 - st_palutena
44 - st_famicom
45 - st_newpork
46 - st_village
47 - st_metalgear
48 - st_greenhill
49 - st_pictchat
4A - st_plankton
4B - st_dxshrine
4C - st_dxyorster
4D - st_dxgarden
4E - st_dxonett
4F - st_dxgreens
50 - st_dxrcruise
51 - st_dxbigblue
52 - st_dxcorneria
53 - st_dxpstadium
54 - st_dxzebes
55 - st_stageedit
56 - st_otrain
57 - st_heal
58 - st_homerun
59 - st_targetbreak
5A - st_croll
5B - ft_mario
5C - ft_donkey
5D - ft_link
5E - ft_samus
5F - ft_yoshi
60 - ft_kirby
61 - ft_fox
62 - ft_pikachu
63 - ft_luigi
64 - ft_captain
65 - ft_ness
66 - ft_koopa
67 - ft_peach
68 - ft_zelda
69 - ft_iceclimber
6A - ft_marth
6B - ft_gamewatch
6C - ft_falco
6D - ft_ganon
6E - ft_wario
6F - ft_metaknight
70 - ft_pit
71 - ft_pikmin
72 - ft_lucas
73 - ft_diddy
74 - ft_poke
75 - ft_dedede
76 - ft_lucario
77 - ft_ike
78 - ft_robot
79 - ft_toonlink
7A - ft_snake
7B - ft_sonic
7C - ft_purin
7D - ft_wolf
7E - ft_zako
What is ASM?
ASM stands for Assembly language
here is a wiki about ASM

http://en.wikipedia.org/wiki/Assembly_language

ASM simplies
here is a great site to see all the ASM doing like li, stw, blr ect
http://class.ee.iastate.edu/cpre211/labs/quickrefPPC.html


Any helpful information or links?
http://forums.kc-mm.com/index.php?topic=29937.0 The information Phantomwhings gave us personally on how stages works.
http://opensa.dantarion.com/wiki/Patching_Charcter_Modules a helpful wiki done by Dant and that's more about Characters to "patch"

PW's Gift
he gave us a gift :3
look at his post!
sneak, snea-

...

Oh, who am I kidding.

Hi everyone, Phantom Wings here. I haven't been by for a while now so I figured I'd drop by and pay my regards to the Brawl Hacking community. I notice that there's been a little bit of interest in the workings of .rels in this here thread so:

[Download]

[Source]

I had this one on the backburner before I left the last time. It's not as intuitive as the Module Editor 2, but it does support editing blocks and relocations as well as saving - hope it helps.

The app itself isn't that well put together, but the module library should be easy enough to salvage for use in BrawlBox - but as usual, don't expect any commenting in my source code.

That's all for now. See you guys around.

13  Help & Tutorials / Help / Riivolution using SD Card ingame on: January 08, 2012, 04:07:05 AM
easy question, why I asking is I have search everywhere but I dont find any answer to my answer so I asking it here if anyone know

1. is it possible to make Riivolution reading SD Card ingame! I mean not the hacks, I mean like you can store stages/photos/videos to SD card instead saving everything to wii.

2. if yes, how can I do it cause that would help me alot right now! Kirby Dance

thanks on beforehand!
14  Help & Tutorials / Help / Need Some Help about Riivolution and SSBB on: January 03, 2012, 06:00:40 PM
hiya! I need some help about Riivolution and SSBB iso that I haven't found any answer about.

1. My discplay dont want to read SSBB and MKWii completly, they freezing when I press "start" but they are readable in riivulotion. how can I fix that?

2. I have some stage builder stage thatis done in stage studio for a machinima I doing but I can't get them to brawl since riivulotion doesn't read SD card ingame D:
anyone know how to make it readable.

Note: I using PAL Version so dont give me things that is suppose to NTCS
15  Help & Tutorials / Model Tutorials / How to Fix Miscolor Shading glitch Without nulling the shaders! on: December 08, 2011, 04:00:39 PM
I promised I would do a guide on how to fix the miscolor shading glitch!

What is Miscolor Shading glitch? and how does it look like?
Miscolor shading glitch is then Model doesn't have Colored Vertex Points so brawl using ther shading color to the Whole object instead for a method that are simiall to "Multyplie" or "Overlay" in Photoshop
(Just an example on how it possible can work)

This is how it looks like:

you notice the wrongtextured eyes, mouth and backhead is MORE MUCH orange than the rest of the body and his doll?
it's because his body is Colored in White and his doll too but his eyes, mouth and backhead doesn't have any color at all!
where is an easy method on how to fix all objects if one model has one ColorNode but I will take it from scratch! not impressed NO EASY HERE  Im srs here

What you need:
3DS max 2010
Your Model ready in 3DS Max (with rigged and anything)
Newest BB

Step One:
okay, I will now show you how to fix it!
this time I will use Dry bones as an example!
Select one object, I used his head.
Go to modifier list and choose "VertexPaint"
add it and make sure "Vertex Color" is selected under "Channel"



if you dont have the extra window, press on "Edit" there it is as my pic shows you
Select a great color to paint with in the extra window. I Recommend gray cause black will make your model much darker and white too bright in game!

after it, select "Paint All" in the extra window (it's a sign of a bucket).

Note: you might Not see the diffirent in 3ds max with the painting, only ingame it will show up

Step 2
Repeat step 1 on Every object you have  Im srs here

Step 3
Export your DAE and import it into BB and look at the ColorNodes

it looks good Cheesy

you might look after errors like if one color is missing or one is white or something.

Last Step
save it as both PAC and PCS (dont forget the compressor on PCS) and test ingame!
and voila!


now the wierd miscolor shading is gone Happy Face

Good luck with fixing and happy hacking :3

Credit would be extremly nice, do NOT steal or claim as your own or about you found it first ect

EDIT: i might have put this in wrong section but this is good in one way cause this will make people see this and fix their problem :3
Pages:  [1] 2