The frame data collector script from a year ago has been greatly improved.
Like before, it works by watching when player 1 attacks player 2 and printing the relevant data to the console when everyone recovers. The same caveats apply: Avoid kara-ing or connecting meaty to get accurate startups, and knockdowns are not marked as such and usually result in large apparent frame advantage. Lua hotkey 1 inserts a blank line and hotkey 2 makes it ignore normal attacks, in order to better isolate button-code supers like Akuma's SGS.
The script can now be found in the MAME-rr Lua repository. (Eventually it should get a documentation wiki page.) Here's what's changed:
- savestates are not used at all, so it's less disruptive and not prone to crashing
- impact freeze is counted separately from hitstun
- a "*" means P1 didn't get any hitfreeze and it was probably a projectile or throw
- if superfreeze is present, startup is subdivided into prefreeze, (freeze), and postfreeze
- startup is now considered to exclude the first active frame
- the heuristics are now built on functions instead of limited a =? b checks, so it's more versatile and easily extensible
- for the SF2 series, frameskip and projectile impact slowdown are automatically disabled
While the ultimate goal is to help get and verify data for any game, for now it works with mostly the same games as before:
- sf2, sf2ce, sf2hf, ssf2, ssf2t, hsf2
- sfa, sfa2, sfz2al
- sfa3
- dstlk, nwarr
- vsav, vhunt2, vsav2
- sfiii, sfiii2, sfiii3
It doesn't work with CPS1/CPS2 games in FBA-rr, possibly due to frameskip strangeness, so you'll need to use MAME-rr for those, and at the moment, sfa, sfa2 & sfz2al are still having some trouble even with MAME. CPS3 games work fine in FBA though, and NeoGeo will probably be OK as well, if it doesn't crash.
New games are added by programming in the conditions in RAM that say when attacks, hitstun, impact freeze, etc. are occurring. To correct errors where the results are off by a constant value, the numbers are calibrated using the results of Macrolua experiments. (By the way, that wiki page still hasn't been updated from last month.)
The data used to calibrate the current script can be found here (local copy) [updated July 5]. It's kind of pointless to distribute savestates for these: the setup is always P1 to the left of P2 at close range, midscreen, with full meter. You can replicate that more easily than downloading.
This is where I need help from my readers. First, I want to present some cases where my empirical results (refer to the .mis file) don't agree with established sources. Any discussion on these is welcome:
- For Cammy's super in ST, I broke startup down to 0 (17) 4, but T.Akiba has 1 (17) 3.
- For Ryu's QCB,QCB+LK super in SFA3, I found a startup of 3 (54) 11. The All About vol.21 mook gives 4 prefreeze and 12 postfreeze, and doesn't give freeze duration, at least not on the chart for that move.
- For 3S Urien's s.MP, I found 5 startup, 3 active, 12 recovery, and +1 hit advantage. ESN's mirror of the karathrow.com data gives 5, 4, 10, and +1.
- For 3S Dudley's SA3 startup, I found 4 (47) 0. I don't even know how to read the karathrow data on it.
Secondly, if you have mooks (or web sources I don't know about), it would help to have some official data for other games to compare against, even if it's just the data for a couple normals and supers.
Really nice!
I made a script very similar in the method (but only for 3s), and i also notice some differences here and there.
I will check values tonight.
In case, here's another link for 3S FD: http://gr.qee.jp/3rd/index.html
Dud's SA3 is shown 1 frame startup, and feels correct to me, as IIRC it's not parryable on reaction.
Posted by: ESN | 06/30/2011 at 03:25 AM
sfa1 seems to work fine with the frame skip off in mame
also according to script d.hp,lk run gives +2 frames, that should be enough to link a c.hk witch it says has 1 frame start up, but it doesn't work.
through testing I think all the startup numbers are 1 frame more then the number given
it says guy's kick super has -3 startup though so there is somting wrong there
his punch super is wrong too, it's says it has a startup of 0 but it's at least 5
Posted by: error1 | 06/30/2011 at 12:24 PM
What i find:
Urien's st.MP : 5/5/10/0/1/2
Dud's Sa3 : 1/10/24
Most of the hit (active) values on my site are wrong.
Posted by: ESN | 06/30/2011 at 04:16 PM
error: I adjusted the logic a bit. Try it again. Also found something annoying: in sfa1-3 and vsav, if you are standing and a low attack is incoming, you have to start blocking one frame earlier than if you are already crouching. I guess it takes one frame to get into crouch.
ESN: Man, that's not reassuring. Where did the karathrow.com numbers come from anyway--somebody experimenting with ppads? Also, how did you get those new numbers? I just realized Dudley SA3 should have at least one postfreeze frame since you can at least block on reaction.
Posted by: dammit | 06/30/2011 at 11:09 PM
seems to be really accurate now, found c.hp, walk forward c.mp with sfa1 sagat using it
Posted by: error1 | 07/01/2011 at 12:32 AM
Yeah, i never understood how guys from KT.com did to get those numbers, though they're kind of accurate as nobody could really tell they were'nt till now.
Game Restaurant (jap link i posted above) is way more trustable anyway.
...'til i finished to get all the real data (and hitboxes) from emulator ^^
I got those new numbers with my own script, and i also quickly checked visually with data displayed on screen from addresses of active hitboxes presence, p1 hit, p2 hit, p1 state, p2 state, etc...
I can send you it if you want, though it is in some kind of final alpha version :d
In your script, what does the postfreeze delay mean? (-3 frames)
Posted by: ESN | 07/01/2011 at 02:53 AM
-3 means it's wrong. =)
Gotta take a trip now, I'll take another look around July 4.
Posted by: dammit | 07/01/2011 at 07:23 AM
sfa1 ryu shinku hadou has -1 startup with the new script :(
Posted by: error1 | 07/01/2011 at 11:07 AM
Script seems to yield accurate results in 3s, Not so much in Alpha2 For example rose's cr.MP gives widely varied results
3 16 21 +5 12
2 17 22 +5 12
2 16 22 +6 12
2 17 21 +4 12
2 16 21 +5 12
The move _should_ be
Startup: 4 Active: 7 Recovery:6 Hitstun: 19 Blockstun:18 HitAdv. +5 BlockAdv. +4
So 4 frames startup 13 attack recovery. 19 hitstun and +5 on hit.
Results like these would look like turbo is on, but I'm sure it is not.
Reason why this move isn't +7 despite what the recovery suggests, is that after every normal Move ther is 2 frames of extra recovery which looks just like normal stand/crouch but it is uncontrollable.
Anyway 2 frames startup isn't right, nor is 21 frames hitstun.
Hope that helps. :)
Posted by: Phoenix | 07/01/2011 at 03:05 PM
alpha 2 gives consistent results if you run it in mame and pick normal speed in the system menu
Posted by: error1 | 07/01/2011 at 10:03 PM
yeah it always gives this for rose's c.mp
3 16 21 +5 12
that would suggest it's a two frame link into another c.mp, but I tested it and it's only a 1 frame link
did some more testing and it looks like the startup number for all moves is 1 frame too low
and the starup for rose's super soul throws are all wrong, the lv3 has -6 startup
Posted by: error1 | 07/01/2011 at 10:21 PM
"did some more testing and it looks like the startup number for all moves is 1 frame too low"
I'm not sure it's the issue here, but there's a lack of consensus about what the startup number is supposed to mean. For someone like me, the natural notion is that startup is what happens *before* the hit takes place - so the fastest startup that's possible is 0. However, some frame data has the startup as the time it takes to hit - so the fastest possible startup would be 1.
Posted by: NateTG | 07/02/2011 at 03:07 PM
The framedata I gave, is the first option so. Fastest possible startup = 0. By that defintion the cr.MP of rose is 4/7/6
So by fatest possible startup = 1 definition that's 5 startup
in FBA-RR I get between 2/3 startup.
Mame gives 3. No matter what the definition, the result is wrong. :)
Posted by: Phoenix | 07/02/2011 at 08:54 PM
yeah the startup as the time it takes to hit is is only used in sf4 and some 3d games
all the old 2d frame data, and the frame data this lua is supposed to give are of the frames before the first actives frames
Posted by: error1 | 07/03/2011 at 02:12 AM
http://shu180sx.webs.com/ Frame data for 3 out of the five vampire games (1-3). I will enjoy using this new script. Hopefully, we can get a lot of the more obscure games in here cause I'm very curious to find out what the frame data is for these games.
Posted by: MightyMar | 07/03/2011 at 03:39 AM
The sfa2 startup problem should now be fixed, but I still can't figure out how to break superfreeze into its components in a consistent and sane manner. For example, SFA1 Guy's punch super actually hits a few frames before the opponent will get unfrozen, hence the negative postfreeze figure, which is nonsense. Feel free to keep reporting any observations. BTW, that mis file is updated with more tests.
MightyMar: I used the more primitive form of the script to examine vhunt2 and vsav2 if you are interested in those. I'd definitely consider shu a reliable source for darkstalkers stuff. The current site is http://darkstalkers.moryou.com/. (I made that webs page with info from last year, so it may get out of date.)
Posted by: dammit | 07/05/2011 at 07:51 PM