Okay, so you know the other guide(s) either just help the people who already know how to do stuff in PSA or etc.
Paprika's Guide (The first one)
http://www.smashboards.com/showthread.php?t=243626
Big PSA List of Events and stuff
http://www.smashboards.com/showthread.php?p=8225324#post8225324
This should hopefully help out those who want to get into PSA, but could use help just learning how to do stuff.
So uh, I hope it's easy enough to understand.
TSON's Really Cool Guide on how to Start Everything Up Okay
In fact, this guide probably renders the beginning of my guide a little useless.
Download it, download pac files - data that is used for each character.
PSA saves in .pac format. To use your edited PAC in your game, replace the one in the fighter folder on your SD card with your new PAC. You should probably save backup unedited PACs though.
The format is FitCharactername.pac. For Mario, it’ll be FitMario.pac in the mario folder, for Jigglypuff, FitPurin.pac in the purin folder, and so on. Squirtle is zenigame, Charizard is lizardon. Bowser is koopa. Etc etc etc.
First things first.
Open your PSA program and a pac file and you should notice some tabs. You should be able to figure out how to navigate between the tabs.
Attributes of the character should be self explanatory. Most are labeled, but some are not. They all have some purpose though, I don’t know them all myself. There is a chart somewhere but I lost it. Anyways, don’t try to edit Weight too much because it is probably buggy.
Okay, here's where I start talking about stuff TSON hadn't got to.
Events.
The first thing that the new PSA user usually wants to know is how to edit moves.
First, be familiar with Events. Events are the building blocks of Sub Routines, Sub Actions, and Specials in PSA.
So yeah, from just looking at most of the windows you see Create, Delete, Modify. These involve events, and the window that pops up for Modify lets you do cool stuff.
Events are basically everything. There are hitbox events, graphics events, sound events, if/then events, loop events, speed events, camera events, etc. If you have taken a Computer Science class in school it will be easier to understand the meaning of some of the events.
Also note that a lot of the numbers used in Events are in Hexadecimal. If you do not know what that is, use the computer calculator and under View choose Scientific. “Normal counting” is Dec, and Hexadecimal is Hex.
Events use numbers. Values are in hex, Scalars are usually normal numbers and use decimals a lot for precision. Everything else like variables are blah.
There are threads on SWF that have lots of identified events. I linked to probably the best one up at the top.
Note that the named events in PSA were named by the creator of the program. Not all events are named. Many useful events are not named. They all however, have a specific number code.
The Event window has the number code in the bottom right hand corner when you are changing it.
SubActions!
-Every time the character uses an animation it is using a Sub Action. There is a subaction for standing still, for running, jumping, landing, all attacks, throws, swimming, item moves, etc. This is where most people edit because it is the easiest to control. They are made of Events, and sometimes Sub Routines.
-Specials are obviously the B moves. In here, the code points towards the Sub Actions to do, but also has stuff like the timer on ROB’s laser, Wario’s fart, or charges on Samus beam etc, or limits on whether you can use the move or not. I don’t mess around here personally myself because I tried a few times and froze my game multiple times.
An IMPORTANT note:
Offsets are the location of the move. If you add Events, you change the Offset (and add to the size of the file). This might not matter, but it does sometimes. The “Goto” event points to a different offset, usually of a SubAction or SubRoutine. If the offset of something changes and the Goto event still points to the old offset, bad things happen. This is probably why messing with Specials didn’t work for me.
Also, Samus and Zero Suit Samus have small file limits so be careful. Usually, if you’re going to change a move, instead of removing the unwanted code you should change the unwanted code to the “nop” Event (which basically does nothing and acts as a placeholder) in case you need that event for later editing.
Move Editing 101
Check out SubActions. Your attacks will have a Subaction number in Hexadecimal.
You can find out which ones are which in other threads.
There is a box that tells the game what animation to use for that Subaction. To “edit” this, you can switch the animation to another one that the character has.
- If you want to switch the animation with another character’s animation, you need BrawlBox and the FitMotion files of the characters you want to switch moves of.
- If you want to edit the animation, you also need BrawlBox, the FitMotion file of the animation you want to edit, and major skills.
Usually there will be a few Offensive collision Events. When you open one up, you should have a list of components of that Offensive collision.
- Bone/ID: The bone is where the hitbox is and the ID is just the name of that hitbox (to differentiate between another hitbox). All hitboxes are circular, so that is why some moves have more than just one hitbox; to be more precise with the hitbox.
- Damage, Trajectory, Base Knockback (starting knockback) and Knockback growth should be obvious. Note that there are 8 digits to replace, and everything is in Hexadecimal here. Also note that the first four digits usually do something else, strangely enough.
- I’d like to repeat that these three Values are in Hexadecimal. Do NOT change the Value option to Scalar or something else, etc.
- Size – This is actually a scalar. It’s the size of the hitbox circle. 10 is about the size of Jigglypuff, I think.
FLAGS are very important. You have an 8 digit value that is very editable.
In the flags are the data for ,
- HIT EFFECTS SUCH AS FIRE, FREEZE, LIGHTNING, DARKNESS, AURA, STUN (think ZSS dsmash or laser), “IMPALE” (think DK’s side b), and a few more.
- SOUND EFFECTS ON HIT
- If the hitbox hits grounded only, air only, or both
- Priority
Probably some other things. the Firey/whatever stuff involves the last two.
Terminate Collisions basically gets rid of all the hitboxes.
Editing the speed of a move. There are two ways to do this.
First you must understand that a move ends in two ways:
- When the animation is finished
- When the Allow interrupt Event is used.
To edit animation speed, you can use the event 04070100
Set parameter 0 to "scalar", and put in the number you want to multiply the speed of the animation by. 2 means it is twice as fast, .5 means half as fast. Usually a .1 change is a pretty noticeable difference!
-This is one of the more useful events that is probably unnamed in your program. Note that Synchronous/Asynchronous timers are unaffected by this, so you might need to change those events accordingly to make the rest of the move match up timewise.
-If the animation finishes before all of the move, then well, you won’t get all of the move. Lol.
Allow interrupt is a nifty tool that adds IASA. Usually you will use an Asynchronous Timer before this event to basically tell when the move can be interrupted.
-----------------------------
Some other specific stuff.
-To make a multi-hit move, use Set Loop
Hitbox
Terminate Collisions
Usually a synchronous timer
Execute loop
-Windbox
Special Hit Collision
Flags: 00030000 (can hit enemies in air or on ground)
Undefined: 00000016
Undefined: E04FFFC0
Everything else works like a normal hit collision.
Paprika's Guide (The first one)
http://www.smashboards.com/showthread.php?t=243626
Big PSA List of Events and stuff
http://www.smashboards.com/showthread.php?p=8225324#post8225324
This should hopefully help out those who want to get into PSA, but could use help just learning how to do stuff.
So uh, I hope it's easy enough to understand.
TSON's Really Cool Guide on how to Start Everything Up Okay
In fact, this guide probably renders the beginning of my guide a little useless.
Download it, download pac files - data that is used for each character.
PSA saves in .pac format. To use your edited PAC in your game, replace the one in the fighter folder on your SD card with your new PAC. You should probably save backup unedited PACs though.
The format is FitCharactername.pac. For Mario, it’ll be FitMario.pac in the mario folder, for Jigglypuff, FitPurin.pac in the purin folder, and so on. Squirtle is zenigame, Charizard is lizardon. Bowser is koopa. Etc etc etc.
First things first.
Open your PSA program and a pac file and you should notice some tabs. You should be able to figure out how to navigate between the tabs.
Attributes of the character should be self explanatory. Most are labeled, but some are not. They all have some purpose though, I don’t know them all myself. There is a chart somewhere but I lost it. Anyways, don’t try to edit Weight too much because it is probably buggy.
Okay, here's where I start talking about stuff TSON hadn't got to.
Events.
The first thing that the new PSA user usually wants to know is how to edit moves.
First, be familiar with Events. Events are the building blocks of Sub Routines, Sub Actions, and Specials in PSA.
So yeah, from just looking at most of the windows you see Create, Delete, Modify. These involve events, and the window that pops up for Modify lets you do cool stuff.
Events are basically everything. There are hitbox events, graphics events, sound events, if/then events, loop events, speed events, camera events, etc. If you have taken a Computer Science class in school it will be easier to understand the meaning of some of the events.
Also note that a lot of the numbers used in Events are in Hexadecimal. If you do not know what that is, use the computer calculator and under View choose Scientific. “Normal counting” is Dec, and Hexadecimal is Hex.
Events use numbers. Values are in hex, Scalars are usually normal numbers and use decimals a lot for precision. Everything else like variables are blah.
There are threads on SWF that have lots of identified events. I linked to probably the best one up at the top.
Note that the named events in PSA were named by the creator of the program. Not all events are named. Many useful events are not named. They all however, have a specific number code.
The Event window has the number code in the bottom right hand corner when you are changing it.
SubActions!
-Every time the character uses an animation it is using a Sub Action. There is a subaction for standing still, for running, jumping, landing, all attacks, throws, swimming, item moves, etc. This is where most people edit because it is the easiest to control. They are made of Events, and sometimes Sub Routines.
-Specials are obviously the B moves. In here, the code points towards the Sub Actions to do, but also has stuff like the timer on ROB’s laser, Wario’s fart, or charges on Samus beam etc, or limits on whether you can use the move or not. I don’t mess around here personally myself because I tried a few times and froze my game multiple times.
An IMPORTANT note:
Offsets are the location of the move. If you add Events, you change the Offset (and add to the size of the file). This might not matter, but it does sometimes. The “Goto” event points to a different offset, usually of a SubAction or SubRoutine. If the offset of something changes and the Goto event still points to the old offset, bad things happen. This is probably why messing with Specials didn’t work for me.
Also, Samus and Zero Suit Samus have small file limits so be careful. Usually, if you’re going to change a move, instead of removing the unwanted code you should change the unwanted code to the “nop” Event (which basically does nothing and acts as a placeholder) in case you need that event for later editing.
Move Editing 101
Check out SubActions. Your attacks will have a Subaction number in Hexadecimal.
You can find out which ones are which in other threads.
There is a box that tells the game what animation to use for that Subaction. To “edit” this, you can switch the animation to another one that the character has.
- If you want to switch the animation with another character’s animation, you need BrawlBox and the FitMotion files of the characters you want to switch moves of.
- If you want to edit the animation, you also need BrawlBox, the FitMotion file of the animation you want to edit, and major skills.
Usually there will be a few Offensive collision Events. When you open one up, you should have a list of components of that Offensive collision.
- Bone/ID: The bone is where the hitbox is and the ID is just the name of that hitbox (to differentiate between another hitbox). All hitboxes are circular, so that is why some moves have more than just one hitbox; to be more precise with the hitbox.
- Damage, Trajectory, Base Knockback (starting knockback) and Knockback growth should be obvious. Note that there are 8 digits to replace, and everything is in Hexadecimal here. Also note that the first four digits usually do something else, strangely enough.
- I’d like to repeat that these three Values are in Hexadecimal. Do NOT change the Value option to Scalar or something else, etc.
- Size – This is actually a scalar. It’s the size of the hitbox circle. 10 is about the size of Jigglypuff, I think.
FLAGS are very important. You have an 8 digit value that is very editable.
In the flags are the data for ,
- HIT EFFECTS SUCH AS FIRE, FREEZE, LIGHTNING, DARKNESS, AURA, STUN (think ZSS dsmash or laser), “IMPALE” (think DK’s side b), and a few more.
- SOUND EFFECTS ON HIT
- If the hitbox hits grounded only, air only, or both
- Priority
Probably some other things. the Firey/whatever stuff involves the last two.
Terminate Collisions basically gets rid of all the hitboxes.
Editing the speed of a move. There are two ways to do this.
First you must understand that a move ends in two ways:
- When the animation is finished
- When the Allow interrupt Event is used.
To edit animation speed, you can use the event 04070100
Set parameter 0 to "scalar", and put in the number you want to multiply the speed of the animation by. 2 means it is twice as fast, .5 means half as fast. Usually a .1 change is a pretty noticeable difference!
-This is one of the more useful events that is probably unnamed in your program. Note that Synchronous/Asynchronous timers are unaffected by this, so you might need to change those events accordingly to make the rest of the move match up timewise.
-If the animation finishes before all of the move, then well, you won’t get all of the move. Lol.
Allow interrupt is a nifty tool that adds IASA. Usually you will use an Asynchronous Timer before this event to basically tell when the move can be interrupted.
-----------------------------
Some other specific stuff.
-To make a multi-hit move, use Set Loop
Hitbox
Terminate Collisions
Usually a synchronous timer
Execute loop
-Windbox
Special Hit Collision
Flags: 00030000 (can hit enemies in air or on ground)
Undefined: 00000016
Undefined: E04FFFC0
Everything else works like a normal hit collision.