rPSIvysaur
[ɑɹsaɪ]
- Joined
- Jun 7, 2009
- Messages
- 16,415
Setting Everything Up
Familiarizing Yourself with OSA2
That's it for now.
[collapse="Old OP"]
This thread will serve as a guide and sign-up thread for gathering accurate, standardized frame data.
To begin collecting basic data without using frame advance on your Wii you will need to download the necessary files. I have compiled them and you can download them at: http://www.mediafire.com/?6ld67tb7dk6e8aq
So to begin, this will be about gathering the Basic Frame data. Most of you already know how to do this, but this will serve as guide.
Gathering Hitbox Data
Gathering Frame Data
First of all, I should give you the link to the spreadsheet we will be using: http://spreadsheets.google.com/ccc?key=0Ah0d-wQSDzcUdEx0RnR1X2xOd28tSVBEajBtUkNMcFE&hl=en#
[/collapse]
To gather frame data, you must have the proper tools. I have compiled the tools for ease of access. You should down load them at: http://www.mediafire.com/?6ld67tb7dk6e8aq. This contains all the necessary tools needed. This includes Open Smash Attacks2 (which will be refered as OSA2), Project Smash Attacks (for emergency use), BrawlBox (one of hackings godliest tools) and the files that the game loads (fitCHAR.pac and fitCHARmotionetc.pac).
You should get comfortable with all these tools, it's important to know these programs, as they are the most accurate form of gathering data.
Using Google DocsYou should get comfortable with all these tools, it's important to know these programs, as they are the most accurate form of gathering data.
Most of all the data that the Smash Lab collects will be placed in the Google Docs. It is imperative that you sign up in the "Setting Up the Google Docs" thread. Once you have signed up and I have let you in, feel free to look around and familize yourself with the Google Docs. Knowing how Google Docs works will definitely help you out.
Gathering the Datahttps://spreadsheets4.google.com/ccc?key=tr1fWAXWPMLDSY66j8Eymaw&hl=en#gid=0
Alright, that's the sign-up sheet. Please fill out your name for the character. Do not mess with my highlighting
Familiarizing Yourself with OSA2
Open the zipped folder you downloaded and unzip it. Inside of there is four folders. One for OSA2, one for PSA, one for the .pacs and one for BrawlBox. Open the OSA2 folder and run the set-up. Once the set-up is finialized, OSA2 should open up. When you have that open, you will see the interface that looks like this: [collapse="Interface"]
[/collapse]Now that we have the interface running, we will open a FitCHAR.pac. (remember, this is not the FitCHARmotionetc.pac) Select your .pac that you will open, and open it up. In the interface you should see that you can now select the tabs. Here is a breif description of what is in each tab. [collapse="Tabs"]In the Events Tab, we have four subtabs. The first subtab is the Actions tab. This contains the information of how the logical flow of subactions occur in a tab. In the FitCHAR.pac, it shows how the flow of their specials go. This also applies to the Hidden(FS) Actoins. The Subactions is where the meat of everything is. It is the motherload. It contains the subactions which are performed during the actions. The subactions contain all the frame data and hitbox data that we need. The Subroutines are sometimes called in the subactions and may contain frame data, but they usually aren't entirely necessary. This is all you need to know about the tabs for now[/collapse]
Ripping the DataFirst of all, you should open up the Subactions tab of your file. This will get you to where the frame data is found. Then you should select the subaction you are looking for. Here is the list of subactions:
Now, open up the subaction for the attack you are looking for. In there you should see (at the most basic level) something that looks like this:
This is how the frame data is stored. The Asynchronous timer is the frame count of what follows it. The hitbox stuff follows under the Frames=2.00x. For a more indepth explanation of how the frames work in there, refer to this: [collapse="Understanding PSA Frames vs. Game Frames"]So this is half for us and half for the public. I think it would be good to just put this out there, so we can make sure that our frame data is correct.
Alright, so we all know that in PSA, you can view the frame data for characters. However, the way this works can confuse lots of people. Things such as ZSS's and Squirtle's "0 Frame" Jabs, when we just consider them frame 1. So instead we adopted the system of adding one to what we see in PSA.
However, is this completely correct to just add 1? No.
People that say that ZSS's Jab comes out frame 0 are technically correct. However, the frame 0 is a misconception. It is actually the PSA frame 0. In PSA, the frames is spits out are not actually the frames seen in game. Instead, they are the parts in-between each frame. They are the inputs. So I would rather refer to the number that PSA spits out as "input" so ZSS's Jab would be considered Frame 1, Input 0.
For the rest, refer to this visualization:
This is a representation of a move I made up (the frame data would be so lulzy). Imagine that they grey part is the start-up of the move, the red part the hitbox of the move and the white part the cool-down.
Now in OSA2 the picture would look like the following
Now I believe that we can all agree on that the hitbox starts on Frame 3. This follows the +1 rule. As you can see, it also follows the I2. So that is entirely correct. Now, if we were to follow the +1 rule. The hitbox would last until frame 9. But would that mean that frame 9 has the hitbox out or gone? This is where the +1 rule leaves much to be desired. But, if we are to use the inputs, we can see that it is indeed not out on frame 9. This is because we are reading this as the game would read it. It would read that the collisions are terminated on Input 8. Therefore, the following frame has no collisions because they were eliminated during Input 8.
Using the the "Input" instead of the "Frame" system helps us to realize things easier like the FAF. Lets take for example the move above. Is the FAF Frame 10 or Frame 11. Well, based on the Input, which is Input 10, we can see that the following frame, Frame 11 is allowing the interrupt.
TL;DR - When you refer to numbers from PSA/OSA2, start using the input number to figure out the actual frame using this graphic.[/collapse]
Filling out the fields
Code:
48 - Jab1
49 - Jab2
4A - Jab3
4B - RapidJabStart
4C - RapidJab
4D - RapidJab Ending
4E - Dash Attack
4F - F-tilt (upward facing)
50 - F-tilt
51 - F-tilt2 (Snake/MK)
52 - F-tilt3 (MK)
53 - F-tilt (downward facing)
54 - U-tilt
55 - D-tilt
56 - F-smash (Before Charge)
57 - F-smash (upward facing)
58 - F-smash
59 - F-smash2 (Link/TL)
5A - F-smash (downard facing)
5B - F-smash (Charge)
5C - U-smash (Before Charge)
5D - U-smash
5E - U-smash (Charge)
5F - D-smash (Before Charge)
60 - D-smash
61 - D-smash (Charge)
62 - N-air
63 - F-air
64 - B-air
65 - U-air
66 - D-air
67 - N-air Landing
68 - F-air Landing
69 - B-air Landing
6A - U-air Landing
6B - D-air Landing
6C - Standing Grab
6D - Dash Grab
6E - Pivot Grab
72 - B-throw
73 - F-throw
74 - U-throw
75 - D-throw
Code:
---Start---
[B]Asynchronous Timer - Frames=2.00x,[/B]
Offensive Collision - Hitbox stuff...
[B]Asynchronous Timer - Frames=8.00x,[/B]
Terminate Collisions
[B]Asynchronous Timer - Frames=10.00x,[/B]
Allow Interrupt
---End---
Alright, so we all know that in PSA, you can view the frame data for characters. However, the way this works can confuse lots of people. Things such as ZSS's and Squirtle's "0 Frame" Jabs, when we just consider them frame 1. So instead we adopted the system of adding one to what we see in PSA.
However, is this completely correct to just add 1? No.
People that say that ZSS's Jab comes out frame 0 are technically correct. However, the frame 0 is a misconception. It is actually the PSA frame 0. In PSA, the frames is spits out are not actually the frames seen in game. Instead, they are the parts in-between each frame. They are the inputs. So I would rather refer to the number that PSA spits out as "input" so ZSS's Jab would be considered Frame 1, Input 0.
For the rest, refer to this visualization:
This is a representation of a move I made up (the frame data would be so lulzy). Imagine that they grey part is the start-up of the move, the red part the hitbox of the move and the white part the cool-down.
Now in OSA2 the picture would look like the following
Code:
---Start---
[B]Asynchronous Timer - Frames=2.00x,[/B]
Offensive Collision - Hitbox stuff...
[B]Asynchronous Timer - Frames=8.00x,[/B]
Terminate Collisions
[B]Asynchronous Timer - Frames=10.00x,[/B]
Allow Interrupt
---End---
Using the the "Input" instead of the "Frame" system helps us to realize things easier like the FAF. Lets take for example the move above. Is the FAF Frame 10 or Frame 11. Well, based on the Input, which is Input 10, we can see that the following frame, Frame 11 is allowing the interrupt.
TL;DR - When you refer to numbers from PSA/OSA2, start using the input number to figure out the actual frame using this graphic.[/collapse]
You will notice that in the Google Docs, we have a spreadsheet with a whole bunch of unfilled columns and rows. To find what goes in these rows, you should look into OSA2 and find what follows what. Here are the ways to find the info in the columns. [collapse="Fields"]
[Collapse="FAF"]The FAF (First Actionable Frame) is the first frame in which someone can go into any other action. To find this, look for the Allow Interupt. Now, we see the timer before that. That is the input frame in which the game inputs that you may interrupt your attack. The following in game frame is the FAF, so put the in game frame (which is going to be the input frame + 1) in the spreadsheet. If a move does not have an Allow Interrupt, we will use BrawlBox to find it (which I will explain later)[/collapse]
[collapse="Hitframe(s)"]The Hitframe, is the first frame in which a hitbox is active. To find this look for the Offensive Collision. The Offensive Collision is the hitbox; it also contains all the hitbox information. Put down all the frames in which a new hitbox is made**. The input frame will be the one that comes before the Offensive Collision. The following in game frame will have the hitbox active (which is going to be input frame + 1). In the case of mulihit attacks, make sure to include all of the frames in which the new hitboxes become active
**Attacks will usually have muliple Offensive Collisions. These do not necessarily mark that it is multi-hit attack, but rather it is not supposed to be completely spherical in shape.[/collapse]
[collapse="Duration(s)"]The duration is how long a hitbox lasts. To find this, look for the Terminate Collisions. This ends a hitbox. The duration is the total in-game frames in which a hitbox takes up. Using the "Understanding PSA Frames vs. In-Game Frames" resource will help you find how long the hitbox stays out. The easy way: subtract the amount of frames from the asynch timer containing the initialization of the hitbox from the asynch timer containing the terminate collisions. If the terminate collisions follows a synch timer, then the duration if the number displayed on the synch timer.[/collapse]
[collapse="Hitbox Changes"]The hitbox changes is when a hitbox changes propertys (exp. How Luigi's N-air becomes weaker, or in Melee where Doc's N-air becomes stronger) This is not present on all attacks. This it not to be confused with multihit attacks. To find where the hitbox change occurs, look to find where the hitbox is called again before a terminate collisions (based on the offensive collision ID). Record the in-game frame in which the new collision parameters are called into effect. The in-game frame follows directly after the input frame. (which is going to be input frame + 1)[/collapse]
[collapse="Charge Timing"]This will be found using BrawlBox. It will be explained in just a bit.[/collapse]
[collapse="Autocancels"]Autocancel is time during an aerial in which you will not be going into the landing lag of the move. This is set by the variable RA-Bit[30]. When this bit is set, the move will go into the attack landing lag, where as if it is not set, then the attack will not go into landing lag. We will be recording the last frame in which the early autocancel will occur and the first frame in which the late autocancel will occur. To find the early autocancel, record the in-game frame that occurs before bit is set. (which is going to be the number on the input frame). The late autocancel will occur directly after the input frame in which the bit is cleared. (which is going to be input frame + 1)[/collapse]
[collapse="Landing Lag"]The landing lag of a move is set by the attributes of a character. Use this spreadsheet, which is a dump of the attributes of characters to find the landing lag: https://spreadsheets1.google.com/ccc?key=teHQICDh3q_bLbhDAibuwTg&hl=en[/collapse]
[collapse="Jab Flow & Jab Loop"]As we have some concerns about how this functions, this can be left unfilled for now as it changes based on character.[/collapse]
[collapse="Invinciblity"]Invincibility is the frames in which a character will not take any damage from an attack. The invincibility will be recorded as the first active frame of invincibility, invinicibility is set by Body Collsion, in which the collision state is 2 or 1. You will record this (which is input frame + 1) then record the last frame in which invincibility is active. That is set by when the Body Collision state is set to 0. This will be the frame that occurs before the input frame. (which is going to be the number on the input frame).[/collapse]
[collapse="IBC"]IBC is invincible bone collisions. This occurs similarly to the invinciblity and will be recorded the same way. Just be sure to leave a comment on the spreadsheet which bone(s) are invincible.[/collapse]
[collapse="Others"]The Damage, HLM and Electric Hitstun? are for derivitive data. You do not need to fill these out unless you know what you are doing.[/collapse][/collapse]
Using BrawlBox to fill out FAF and Charge Timing[Collapse="FAF"]The FAF (First Actionable Frame) is the first frame in which someone can go into any other action. To find this, look for the Allow Interupt. Now, we see the timer before that. That is the input frame in which the game inputs that you may interrupt your attack. The following in game frame is the FAF, so put the in game frame (which is going to be the input frame + 1) in the spreadsheet. If a move does not have an Allow Interrupt, we will use BrawlBox to find it (which I will explain later)[/collapse]
[collapse="Hitframe(s)"]The Hitframe, is the first frame in which a hitbox is active. To find this look for the Offensive Collision. The Offensive Collision is the hitbox; it also contains all the hitbox information. Put down all the frames in which a new hitbox is made**. The input frame will be the one that comes before the Offensive Collision. The following in game frame will have the hitbox active (which is going to be input frame + 1). In the case of mulihit attacks, make sure to include all of the frames in which the new hitboxes become active
**Attacks will usually have muliple Offensive Collisions. These do not necessarily mark that it is multi-hit attack, but rather it is not supposed to be completely spherical in shape.[/collapse]
[collapse="Duration(s)"]The duration is how long a hitbox lasts. To find this, look for the Terminate Collisions. This ends a hitbox. The duration is the total in-game frames in which a hitbox takes up. Using the "Understanding PSA Frames vs. In-Game Frames" resource will help you find how long the hitbox stays out. The easy way: subtract the amount of frames from the asynch timer containing the initialization of the hitbox from the asynch timer containing the terminate collisions. If the terminate collisions follows a synch timer, then the duration if the number displayed on the synch timer.[/collapse]
[collapse="Hitbox Changes"]The hitbox changes is when a hitbox changes propertys (exp. How Luigi's N-air becomes weaker, or in Melee where Doc's N-air becomes stronger) This is not present on all attacks. This it not to be confused with multihit attacks. To find where the hitbox change occurs, look to find where the hitbox is called again before a terminate collisions (based on the offensive collision ID). Record the in-game frame in which the new collision parameters are called into effect. The in-game frame follows directly after the input frame. (which is going to be input frame + 1)[/collapse]
[collapse="Charge Timing"]This will be found using BrawlBox. It will be explained in just a bit.[/collapse]
[collapse="Autocancels"]Autocancel is time during an aerial in which you will not be going into the landing lag of the move. This is set by the variable RA-Bit[30]. When this bit is set, the move will go into the attack landing lag, where as if it is not set, then the attack will not go into landing lag. We will be recording the last frame in which the early autocancel will occur and the first frame in which the late autocancel will occur. To find the early autocancel, record the in-game frame that occurs before bit is set. (which is going to be the number on the input frame). The late autocancel will occur directly after the input frame in which the bit is cleared. (which is going to be input frame + 1)[/collapse]
[collapse="Landing Lag"]The landing lag of a move is set by the attributes of a character. Use this spreadsheet, which is a dump of the attributes of characters to find the landing lag: https://spreadsheets1.google.com/ccc?key=teHQICDh3q_bLbhDAibuwTg&hl=en[/collapse]
[collapse="Jab Flow & Jab Loop"]As we have some concerns about how this functions, this can be left unfilled for now as it changes based on character.[/collapse]
[collapse="Invinciblity"]Invincibility is the frames in which a character will not take any damage from an attack. The invincibility will be recorded as the first active frame of invincibility, invinicibility is set by Body Collsion, in which the collision state is 2 or 1. You will record this (which is input frame + 1) then record the last frame in which invincibility is active. That is set by when the Body Collision state is set to 0. This will be the frame that occurs before the input frame. (which is going to be the number on the input frame).[/collapse]
[collapse="IBC"]IBC is invincible bone collisions. This occurs similarly to the invinciblity and will be recorded the same way. Just be sure to leave a comment on the spreadsheet which bone(s) are invincible.[/collapse]
[collapse="Others"]The Damage, HLM and Electric Hitstun? are for derivitive data. You do not need to fill these out unless you know what you are doing.[/collapse][/collapse]
Now, OSA2 can't gather all of the data. For example, information about the animations themselves are stored within a different .pac storage. They are stored in FitCHARmotionetc.pac. Now, open up Brawlbox and find the FitCHARmotionetc.pac. In there you will see the layout of the .pac. In it is 3 ARC file Archives. These hold the information we want. Now go to the FitCaptainMotion ARC. In it you should see a BRES AnimationData; go into that. Now you will see four folders. Double click the AnmChr. This will hold all of the characters animation. Find the animation you are looking for (in OSA2, it gives you an animation for each subaction. Just find the animation that matches the subaction you are looking for). When you click on one of them, it should bring up FrameCount and 3 Unknowns. To find the FAF based upon the animaiton, you need to record the animation length. To find the Charge Timing, you will find the animation lengths for Attack_4Start. Then, you subtract one frame for that and record the number in the appropriate place.
That's it for now.
[collapse="Old OP"]
To begin collecting basic data without using frame advance on your Wii you will need to download the necessary files. I have compiled them and you can download them at: http://www.mediafire.com/?6ld67tb7dk6e8aq
So to begin, this will be about gathering the Basic Frame data. Most of you already know how to do this, but this will serve as guide.
Gathering Hitbox Data
Using OSA2
In order gather necessary hitbox data, we need to open up the data from the source itself. OpenSA2 allows us to view this data. Once you have OSA2 installed on your computer, you need to open up a FitCHAR.pac file. Once you have this open, you will need to go to the subactions tab. In there you will find the various subactions of your character. This contains most of the hitbox data you will need. Now you need to gather the data. You will need to go to the correct subactions for each attack. They are:
The data you will be gathering for each attack are the Damage, Angle, Base Knockback, Knockback Growth and Hitlag modifier. All other data about hitboxes are unnecessary. As you will see, each attack will have at least one "Offensive Collision" these are the hitboxes. Each of these will have the data that includes Damage, Angle, etc... For each one of these, record the ID and the data about it. When recording the data about it, remember that the numbers are in hexidecimal. Use the program calculator that is built into your computer and go into programmer mode or look it up on the internet.
In order gather necessary hitbox data, we need to open up the data from the source itself. OpenSA2 allows us to view this data. Once you have OSA2 installed on your computer, you need to open up a FitCHAR.pac file. Once you have this open, you will need to go to the subactions tab. In there you will find the various subactions of your character. This contains most of the hitbox data you will need. Now you need to gather the data. You will need to go to the correct subactions for each attack. They are:
Code:
48 - Jab1
49 - Jab2
4A - Jab3
4B - RapidJabStart
4C - RapidJab
4D - RapidJab Ending
4E - Dash Attack
4F - F-tilt (upward facing)
50 - F-tilt
51 - F-tilt2 (Snake/MK)
52 - F-tilt3 (MK)
53 - F-tilt (downward facing)
54 - U-tilt
55 - D-tilt
56 - F-smash (Before Charge)
57 - F-smash (upward facing)
58 - F-smash
59 - F-smash2 (Link/TL)
5A - F-smash (downard facing)
5B - F-smash (Charge)
5C - U-smash (Before Charge)
5D - U-smash
5E - U-smash (Charge)
5F - D-smash (Before Charge)
60 - D-smash
61 - D-smash (Charge)
62 - N-air
63 - F-air
64 - B-air
65 - U-air
66 - D-air
67 - N-air Landing
68 - F-air Landing
69 - B-air Landing
6A - U-air Landing
6B - D-air Landing
6C - Standing Grab
6D - Dash Grab
6E - Pivot Grab
72 - B-throw
73 - F-throw
74 - U-throw
75 - D-throw
Using the Google Doc
For every character you gather hitbox data for, you will have to record the data. When recording the data, you should place the hitbox data in the cooresponding spreadsheet that we have set-up in the Google Docs folder. I will be setting these up for easy accesss. Here is the link to the spreadsheet that will hold the hitbox data: http://spreadsheets.google.com/ccc?key=0Ah0d-wQSDzcUdHpBZmI3RXB2Z3hVQTh0Q05aV2hubXc&hl=en#
For every character you gather hitbox data for, you will have to record the data. When recording the data, you should place the hitbox data in the cooresponding spreadsheet that we have set-up in the Google Docs folder. I will be setting these up for easy accesss. Here is the link to the spreadsheet that will hold the hitbox data: http://spreadsheets.google.com/ccc?key=0Ah0d-wQSDzcUdHpBZmI3RXB2Z3hVQTh0Q05aV2hubXc&hl=en#
Gathering Frame Data
First of all, I should give you the link to the spreadsheet we will be using: http://spreadsheets.google.com/ccc?key=0Ah0d-wQSDzcUdEx0RnR1X2xOd28tSVBEajBtUkNMcFE&hl=en#
Using OSA2 and PSA
AS you already know, the hitbox data we literally ripped from the game it's self. Now we are going to rip the frame data also from the game. To do this, you will need to install OSA2, as it is the best viewer of the data. Now that you have OsA2 installed on your computer, you are going to open the "Character.pac". Now to gather the specific frame data.
Frame Data Info
The information we will be looking for frame data wise, will include: Animation Duration, IASA, Start-Up, Hit-On, Earliest Jab Flow, Earliest Jab Loop, Autocancel (before), Autocancel (after), Landing Lag.
Finding this data in OSA2
The first thing you must understand about OSA2 is how it works. First pull up your characters data and go to their subactions tab. This tab holds all the information you need for most of the frame data. Go to the desired attack (see: list above) and view the subaction. [Exp. Jab1 is subaction 48, so select the 48 in the drop down list.] Now you will see some jargon that you might not be able to make out at first. This is the data we are looking for.
The parts that we are looking for the Timers. This is in direct relation with the frames that the games run on. An Asynchronous Timer, is a timer that does not rely on any previous timers and tells the amount of frames from the begining of the move the information "below" it is. A Synchronous Timer, is a timer that is dependant on the timers that occur before it. The frame data at which the information below it is, is equal to the frames of the timer plus the current frame position before the timer.
The other information in there is the information such as the IASA, Hitboxes, Termination of Hitboxes, etc... which are all reliant on the timers. The information we gather is frames based off of the timers and the events that happen as the timers occur. [exp. Captain Falcon's jab. If we look for the IASA, then we will find that it occurs after a 15 frame timer.]
Now we need to figure out which data we are looking for. Here is what is what when you look in OSA2:
Recording the Data
Now that you found out what's what, the next part is recording each part of the data.The first thing you need to know is that PSA runs on a base 0 for each action (an action is something such as F-smash, which has 3 subactions of before charge, charge and after charge, you only need to add the 1 frame.) We need to change it into a base 1, so we add one frame. Something that OSA2 says is on frame 6 is actually on frame 7 in game.
So I have to re-write this section because it was only semi-correct. I have recently made a thread for this, here are the contents:
So now that I have that out of the way.
Here is how to record each section:
IASA
Now, OSA2 can't gather all of the data. For example, information about the animations themselves are stored within a different .pac storage. They are stored in FitCHARmotionetc.pac. Now, open up Brawlbox and find the FitCHARmotionetc.pac. In there you will see the layout of the .pac. In it is 3 ARC file Archives. These hold the information we want. Now go to the FitCaptainMotion ARC. In it you should see a BRES AnimationData; go into that. Now you will see four folders. Double click the AnmChr. This will hold all of the characters animation. Find the animation you are looking for (in OSA2, it gives you an animation for each subaction. Just find the animation that matches the subaction you are looking for). When you click on one of them, it should bring up FrameCount and 3 Unknowns. Record the frame count in the correct space on the spreadsheet and you should be done with Brawlbox.
When recording the data in the sheet use the input number and not the frame number. This applies to everything except landing lag and animation duration.
AS you already know, the hitbox data we literally ripped from the game it's self. Now we are going to rip the frame data also from the game. To do this, you will need to install OSA2, as it is the best viewer of the data. Now that you have OsA2 installed on your computer, you are going to open the "Character.pac". Now to gather the specific frame data.
Frame Data Info
The information we will be looking for frame data wise, will include: Animation Duration, IASA, Start-Up, Hit-On, Earliest Jab Flow, Earliest Jab Loop, Autocancel (before), Autocancel (after), Landing Lag.
Finding this data in OSA2
The first thing you must understand about OSA2 is how it works. First pull up your characters data and go to their subactions tab. This tab holds all the information you need for most of the frame data. Go to the desired attack (see: list above) and view the subaction. [Exp. Jab1 is subaction 48, so select the 48 in the drop down list.] Now you will see some jargon that you might not be able to make out at first. This is the data we are looking for.
The parts that we are looking for the Timers. This is in direct relation with the frames that the games run on. An Asynchronous Timer, is a timer that does not rely on any previous timers and tells the amount of frames from the begining of the move the information "below" it is. A Synchronous Timer, is a timer that is dependant on the timers that occur before it. The frame data at which the information below it is, is equal to the frames of the timer plus the current frame position before the timer.
The other information in there is the information such as the IASA, Hitboxes, Termination of Hitboxes, etc... which are all reliant on the timers. The information we gather is frames based off of the timers and the events that happen as the timers occur. [exp. Captain Falcon's jab. If we look for the IASA, then we will find that it occurs after a 15 frame timer.]
Now we need to figure out which data we are looking for. Here is what is what when you look in OSA2:
Code:
IASA: Allow Interupt
Hit-On: Offensive Collisions and Terminate Collisions
Earliest Jab Flow: Bit Variable Set - RA-Bit[16]
Earliest Jab Loop: Bit Variable Set - RA-Bit[22]
Autocancel (before): Bit Variable Set - RA-Bit[30]
Autocancel (after): Bit Varibable Clear - RA-Bit[30]
Invincibility (start): Body Collision - Collision State=0x2
Invincibility (end): Body Collision - Collision State=0x0
Now that you found out what's what, the next part is recording each part of the data.
So I have to re-write this section because it was only semi-correct. I have recently made a thread for this, here are the contents:
So this is half for us and half for the public. I think it would be good to just put this out there, so we can make sure that our frame data is correct.
Alright, so we all know that in PSA, you can view the frame data for characters. However, the way this works can confuse lots of people. Things such as ZSS's and Squirtle's "0 Frame" Jabs, when we just consider them frame 1. So instead we adopted the system of adding one to what we see in PSA.
However, is this completely correct to just add 1? No.
People that say that ZSS's Jab comes out frame 0 are technically correct. However, the frame 0 is a misconception. It is actually the PSA frame 0. In PSA, the frames is spits out are not actually the frames seen in game. Instead, they are the parts in-between each frame. They are the inputs. So I would rather refer to the number that PSA spits out as "input" so ZSS's Jab would be considered Frame 1, Input 0.
For the rest, refer to this visualization:
This is a representation of a move I made up (the frame data would be so lulzy). Imagine that they grey part is the start-up of the move, the red part the hitbox of the move and the white part the cool-down.
Now in OSA2 the picture would look like the following
Now I believe that we can all agree on that the hitbox starts on Frame 3. This follows the +1 rule. As you can see, it also follows the I2. So that is entirely correct. Now, if we were to follow the +1 rule. The hitbox would last until frame 9. But would that mean that frame 9 has the hitbox out or gone? This is where the +1 rule leaves much to be desired. But, if we are to use the inputs, we can see that it is indeed not out on frame 9. This is because we are reading this as the game would read it. It would read that the collisions are terminated on Input 8. Therefore, the following frame has no collisions because they were eliminated during Input 8.
Using the the "Input" instead of the "Frame" system helps us to realize things easier like the FAF. Lets take for example the move above. Is the FAF Frame 10 or Frame 11. Well, based on the Input, which is Input 10, we can see that the following frame, Frame 11 is allowing the interrupt.
TL;DR - When you refer to numbers from PSA/OSA2, start using the number it has and say it's the Input and not the frame. (ex. ZSS's Jab is I0)
Alright, so we all know that in PSA, you can view the frame data for characters. However, the way this works can confuse lots of people. Things such as ZSS's and Squirtle's "0 Frame" Jabs, when we just consider them frame 1. So instead we adopted the system of adding one to what we see in PSA.
However, is this completely correct to just add 1? No.
People that say that ZSS's Jab comes out frame 0 are technically correct. However, the frame 0 is a misconception. It is actually the PSA frame 0. In PSA, the frames is spits out are not actually the frames seen in game. Instead, they are the parts in-between each frame. They are the inputs. So I would rather refer to the number that PSA spits out as "input" so ZSS's Jab would be considered Frame 1, Input 0.
For the rest, refer to this visualization:
This is a representation of a move I made up (the frame data would be so lulzy). Imagine that they grey part is the start-up of the move, the red part the hitbox of the move and the white part the cool-down.
Now in OSA2 the picture would look like the following
Code:
---Start---
[B]Asynchronous Timer - Frames=2.00x,[/B]
Offensive Collision - Hitbox stuff...
[B]Asynchronous Timer - Frames=8.00x,[/B]
Terminate Collisions
[B]Asynchronous Timer - Frames=10.00x,[/B]
Allow Interrupt
---End---
Using the the "Input" instead of the "Frame" system helps us to realize things easier like the FAF. Lets take for example the move above. Is the FAF Frame 10 or Frame 11. Well, based on the Input, which is Input 10, we can see that the following frame, Frame 11 is allowing the interrupt.
TL;DR - When you refer to numbers from PSA/OSA2, start using the number it has and say it's the Input and not the frame. (ex. ZSS's Jab is I0)
So now that I have that out of the way.
Here is how to record each section:
IASA
Find the corresponding timer under which the Allow Interupt is and record the frame on which it occurs. Sometimes moves do not have IASA. If it has no IASA, please record n/a.
Hit-OnHit on is the frames the hitbox is active. To find this, you must find the first frame the move is active via the corresponding timer and the last frame the hitbox is active via the corresponding timer. [exp. The hitbox timers start at asynch 5 and terminate at asynch 7, so record "I5-I7"]
Earliest Jab FlowTo find the earliest jab flow, find the cooresponding timer in which the RA-Bit[16] is found
Earliest Jab LoopTo find the earliest jab loop, find the cooresponding timer in which the RA-Bit[22] is found
AutocancelThe frames before the RA-Bit[30] is set is the autocancel before the hitbox and the frames after RA-Bit[30] is cleared.
InvincibilityTo find all frames in which a character is invincible, look for the corresponding timers in front of the Body Collision states. [exp. The timer before Collision State 0x2 is 3 and the one before Collision State 0x0 is 7, you should record "I3-I7"]
Using BrawlboxNow, OSA2 can't gather all of the data. For example, information about the animations themselves are stored within a different .pac storage. They are stored in FitCHARmotionetc.pac. Now, open up Brawlbox and find the FitCHARmotionetc.pac. In there you will see the layout of the .pac. In it is 3 ARC file Archives. These hold the information we want. Now go to the FitCaptainMotion ARC. In it you should see a BRES AnimationData; go into that. Now you will see four folders. Double click the AnmChr. This will hold all of the characters animation. Find the animation you are looking for (in OSA2, it gives you an animation for each subaction. Just find the animation that matches the subaction you are looking for). When you click on one of them, it should bring up FrameCount and 3 Unknowns. Record the frame count in the correct space on the spreadsheet and you should be done with Brawlbox.
When recording the data in the sheet use the input number and not the frame number. This applies to everything except landing lag and animation duration.