Collecting Framedata and Hitboxes
Download MAME Rerecording | USE ONLY THIS FOR FRAMEDATA
Download FinalBurn Alpha Rerecording | USE THIS MAINLY FOR HITBOXES THAT DONT SHOW UP IN MAME-RR
Download the Hitbox Viewer Script for the game you want. (click on SVN repository)
Download Framedata.lua (right-click and save raw file)
Unrar mame-rr and do shift + rightclick inside its folder to bring up the command window option. Select that.
Type mame -cc and hit enter. This will create mame-rr.ini
Look for # CORE MISC OPTIONS inside mame-rr.ini and enter the script.lua you want to use, then save mame-rr.ini.
Manually Counting Frames
USE TURBO SPEED 1 IF YOUR GAME HAS TURBO
NOTE: CPS2 THROW RANGE BOXES DO NOT WORK IN MAME-RR. USE FBA-RR FOR THOSE
If your game isn't supported by framedata.lua, you will have to turn on the hitboxes script and count the frames manually. Don't worry, it's not that hard.
Run mame.exe and select the rom you want to use. A window for your hitboxes script should've popped up as well.
Press TAB, go to Input (General) and set a key for Frame Advance, and any LUA hotkeys you need to use. (Throwable boxes are off by default.)
Go to Input (This Game) and set up keys for both Player 1 and Player 2. I recommend making UP the same input for both players to easily calculate frame advantage.
Insert coins and press start on both players and select the same character for both.
Startup frames are the animations before a move is considered active plus the first active frame.
To find the startup, first press the hotkey for pausing the emulator. (Your FRAME ADVANCE key will also pause the emulator.)
Now while the game is paused, hold the button you want to find the startup for and press FRAME ADVANCE. This input frame doesn't count toward startup. (Because of buffering)
Now just keep pressing FRAME ADVANCE while counting how many frames it takes for the animation to reach the first frame where a red box appears. This first active frame with a red hitbox is counted as the last frame of startup.
Record what you counted to, this is the startup.
For special moves with inputs impossible to enter in one frame, what I do is input the directions but substitute PAUSE for the final input. So a fireball would be like QCF+PAUSE. Then while the game is paused, just hold the last input and press FRAME ADVANCE.
Just count how many frames with red hitboxes there are until theres no more.
You need to include the first active frame again in this too.
So your combined total of Startup > Active > Recovery frames should actually have one extra frame of animation since it's counted in both startup and active frames.
Also, for moves that hit multiple times with lots of breaks between active frames, you should count all of the sections separately.
So let's say a move has two hits active for 5 frames each with a 4 frame break inbetween the hits. You would record it like:
I DON'T KNOW HOW TO DO THIS PROPERLY HELP PLEASE
I just count after the active frames until it looks like you stand again but that's wrong. It should be the first frame you can move again.
To calculate advantage on hit, hit the opponent and pause the game. While holding UP on both players' controls, FRAME ADVANCE until the first frame where one of the characters is in the air. This frame we will count as ZERO.
Next, just count from ONE while tapping FRAME ADVANCE (still holding UP) until the first frame the next character is in the air.
If the character that got hit jumped first, multiply your number by negative 1. If the character that attacked jumped first, they had a positive advantage. If they jumped at exactly the same frame the move is +0.
You can use the same method for advantage on block. Just make the second character block the attack instead of getting hit.
Super Flash Startup
This is a little harder. You have to count the amount of frames someone can still move around before the flash as the first section of a super.
Then, from the first frame someone can move after the flash until there is a red hitbox is your combined startup.
If the hitbox is active before the flash finishes, your startup is: PRE-FLASH FRAMES + 0
This is the only way "zero frame moves" exist (I think...)