Frameskip is a method used by Capcom fighting games make the gameplay faster. It began with the sped-up bootlegs of SF2 World Warrior and Champion Edition and became official in Hyper Fighting. Almost all the 2D (sprite-based) games up through Capcom Fighting Evolution used it, with the notable exception of 3rd Strike and the other CPS3 games.
How it works: A certain number of frames are played normally, then one frame is dropped, then some more normal frames, then another drop, and so on. During a dropped frame, everything in the game world continues to happen, but it doesn’t get displayed. In the span of one real-life frame, two in-game frames get processed by the machine. This has the effect of making everything except music and sound effects faster: startup, recovery, impact freeze, walk speed, charge requirements, background animations, etc. all get faster.
1 | 1 | 0 |
2 | 2 | 1 |
3 | 3 | 2 |
4 | 3 | |
1 | 4 | |
1 | 2 | 5 |
2 | 3 | 6 |
3 | 7 | |
4 | 1 | 8 |
2 | 9 | |
1 | 3 | 10 |
2 | 11 | |
3 | 1 | 12 |
4 | 2 | 13 |
5 | 3 | 14 |
15 | ||
1 | 1 | 16 |
2 | 2 | 17 |
3 | 3 | 18 |
The other consequence is you can’t send any input during the dropped frames. Any controls held or not held before the skip remain that way during the skip. The increased speed and the temporary loss of control make frameskip important to competitive play and combo videos, but for different reasons:
- Being randomly unable to control your character makes combos more likely to fail. Combos that are less reliable can make the game more unpredictable and exciting—and can weaken any overpowered strategies the developers left in. One-frame links can end up as zero-frame links.
- Likewise, an exhibition combo with tight timing will fail if the frame needed for a link, jump, CC activation, etc. is skipped. This is especially prominent when recording input with an emulator and savestates: Once the action is started, the same frames will be lost no matter how many times you retry. You may have to kill some time before the initial setup to get it to work.
- But don’t do it at Normal unless you have to. Combos should be recorded at the same speed people play at (or faster) otherwise they just feel too slow.
- Ironically, frameskip can ameliorate the Youtube problem by constantly changing up which half of the frames get cut out by the encoder.
- In SF2HF, SSF2T and HSF2, frameskip can rob you of the ability to do reversals: if the one frame you need to execute the reversal gets skipped, you will be vulnerable for at least one frame and may be helpless against a meaty attack or tick throw.
- Frameskip will aggravate any effort to collect frame data. What’s less obvious is that it’s still there on Normal speed in some cases, like CvS 1.
- Adjustable speed presents a problem when you and someone else prefer different settings. What do you pick when you play against each other?
Except for the earlier implementations, the sequence of normal and dropped frames falls into distinct patterns. Shorter blocks of unskipped frames means a larger relative number of dropped frames and higher effective speed. The strip to the right illustrates SFA3 Ryu’s s.LK at Turbo 1 (4,4,5,4,4,5,…) and Turbo 2 (3,3,3,…). The frames that would get dropped are marked red, though the start of the cycle is going to be randomly placed.
Below is a table of frameskip patterns for most of the arcade games and some console games that use it. Also given is the overall speed relative to no frameskip, which is computed by dividing the in-game frames by the real-life frames elapsed in one cycle.
This data was collected by using an emulator and watching how the match timer goes down frame by frame at each speed setting. (Whenever it decrements by more than one unit you know a frame was skipped.) I used this Lua script to expedite the process.
* Some games have more stable patterns than others. The Marvel games are always on time with their skips, but sf2hf, ssf2t, dstlk, nwarr, and the PSX ports of Darkstalkers 3 and SFA2 are much more random. The timing might depend on the stage, how much action is going on, and possibly random factors.
Street Fighter II series
sf2hf*
(no option) | 2,2,2,… | 150% |
ssf2t*
Turbo 1 (Japan) Free Select: Speed 1 (Japan) Turbo 0 (other regions) |
3,3,3,… | 133% |
Turbo 2 (Japan) Free Select: Speed 2 (Japan) Turbo 1 (other regions) Free Select: Speed 1 (other regions) |
2,3,3,2,3,3,… | 138% |
Turbo 3 (Japan) Free Select: Speed 3 (Japan) Turbo 2 (other regions) Free Select: Speed 2 (other regions) |
2,2,3,2,2,3,… | 143% |
Turbo 4 (Japan) Turbo 3 (other regions) Free Select: Speed 3 (other regions) |
2,2,2,… | 150% |
hsf2
Turbo 1 (Japan) Free Select: Speed 1 (Japan) Turbo 0 (other regions) |
none | 100% |
Turbo 2 (Japan) Free Select: Speed 2 (Japan) Turbo 1 (other regions) Free Select: Speed 1 (other regions) |
5,5,6,5,5,6,… | 119% |
Turbo 3 (Japan) Free Select: Speed 3 (Japan) Turbo 2 (other regions) Free Select: Speed 2 (other regions) |
3,3,3,3,4,3,3,3,3,4,… | 131% |
Turbo 4 (Japan) Turbo 3 (other regions) Free Select: Speed 3 (other regions) |
2,2,3,2,2,2,3,2,2,3,2,2,2,3,… | 144% |
There’s no frameskip in sf2, sf2ce or ssf2.
Rufus has found the patterns for HDR by looking for dropped frames in footage of Chun-Li’s lightning legs.
HD Remix
Turbo 0 | none | 100% |
Turbo 1 | 5,5,6,5,5,6,… | 119% |
Turbo 2 | 5,5,4,5,4,5,4,… | 122% |
Turbo 3 | 4,4,4,4,4,4,4,4,… | 125% |
Turbo 4 | 4,3,4,3,4,3,4,3,4,… | 128% |
Street Fighter Alpha series
sfa
Normal | 15,15,15,… | 107% |
Turbo 1 | 4,4,5,4,4,5,… | 123% |
Turbo 2 | 3,3,3,… | 133% |
Free Select: Normal | none | 100% |
Free Select: Turbo | 7,7,7,… | 114% |
sfa2, sfz2al
Normal Free Select 1: Normal |
none | 100% |
Turbo 1 Free Select 1: Turbo On Free Select 2: Normal |
4,4,5,4,4,5,… | 123% |
Turbo 2 Free Select 2: Turbo On |
3,3,3,… | 133% |
sfa3
Normal Free Select 1: Normal |
none | 100% |
Turbo 1 Free Select 1: Turbo Free Select 2: Normal |
4,4,5,4,4,5,… | 123% |
Turbo 2 Free Select 2: Turbo 2 |
3,3,3,… | 133% |
Darkstalkers series
dstlk*
Turbo 1 Free Select: Speed 1 |
none | 100% |
Turbo 2 Free Select: Speed 2 |
4,4,4,… | 125% |
Turbo 3 Free Select: Speed 3 |
2,3,2,3,… | 140% |
nwarr*
Turbo Off Free Select: Normal |
none | 100% |
Turbo On Free Select: Turbo |
5,5,5,… | 120% |
vsav
Normal Free Select 1: Normal |
none | 100% |
Turbo 1 Free Select 1: Turbo Free Select 2: Normal |
4,4,5,4,4,5,… | 123% |
Turbo 2 Free Select 2: Turbo Free Select 3: Normal |
3,4,3,4,3,4,4,3,4,3,4,3,4,4,… | 128% |
Turbo 3 Free Select 3: Turbo |
3,3,3,… | 133% |
vhunt2, vsav2
ノーマル フリーセレクト1: Normal |
none | 100% |
ターボ 1 フリーセレクト1: Turbo フリーセレクト2: Normal |
7,7,7,… | 114% |
ターボ 2 フリーセレクト2: Turbo フリーセレクト3: Normal |
4,4,5,4,4,5,… | 123% |
ターボ 3 フリーセレクト3: Turbo |
3,3,3,… | 133% |
Pocket Fighter
sgemf
Turbo 1 Free Select: Speed 1 |
none | 100% |
Turbo 2 Free Select: Speed 2 |
15,15,15,… | 107% |
Turbo 3 Free Select: Speed 3 |
7,7,7,… | 114% |
Turbo 4 | 4,4,5,4,4,5,… | 123% |
Marvel series
msh
Normal Mode Select: Normal |
none | 100% |
Turbo Mode Select: Turbo |
10,10,10,… | 110% |
xmvsf
Normal Free Select: Normal |
none | 100% |
Turbo 1 Free Select: Turbo Free Select 2: Normal |
10,10,10,… | 110% |
Turbo 2 Free Select 2: Turbo |
6,6,6,… | 117% |
mshvsf, mvsc
Normal Free Select: Normal |
none | 100% |
Turbo 1 Free Select: Turbo Free Select 2: Normal |
6,6,6,… | 117% |
Turbo 2 Free Select 2: Turbo |
4,4,4,… | 125% |
There’s no frameskip in xmcota.
NAOMI games
sfz3ugd (SFZ3 Upper)
Normal Free Select 1: Normal |
none | 100% |
Turbo 1 Free Select 1: Turbo Free Select 2: Turbo 1 |
4,4,5,4,4,5,… | 123% |
Turbo 2 Free Select 2: Turbo 2 |
3,3,3,… | 133% |
Turbo 3 | 2,3,2,3,2,3,2,3,3,… | 139% |
Turbo 4 | 2,2,2,2,3,2,2,2,2,3,… | 145% |
Turbo 5 | 1,2,2,2,2,2,2,2,2,2,2,… | 152% |
Turbo 6 | 1,2,2,1,2,2,… | 160% |
Turbo 7 | 1,1,2,1,2,1,2,1,2,1,2,1,2,… | 168% |
capsnk (CvS 1), cvsgd (CvS Pro), mvsc2 (MvC 2)
Normal Free Select: Normal |
6,6,6,… | 117% |
Turbo Free Select: Turbo |
4,4,4,… | 125% |
cvs2gd (CvS 2)
Game Speed 1 | none | 100% |
Game Speed 2 | 6,6,6,… | 117% |
Game Speed 3 | 4,4,4,… | 125% |
Game Speed 4 | 3,3,3,… | 133% |
Game Speed 5 | 2,2,2,… | 150% |
Selected console versions
Street Fighter II Turbo (SNES)
Normal Turbo 0 |
none | 100% |
Turbo 1 | 11,11,11,… | 109% |
Turbo 2 | 5,6,5,6,5,6,… | 118% |
Turbo 3 | 3,4,4,3,4,4,… | 127% |
Turbo 4 | 2,3,2,4,2,3,2,4,… | 136% |
Turbo 5 | 1,3,2,3,2,1,3,2,3,2,… | 145% |
Turbo 6 | 1,2,2,2,2,2,… | 155% |
Turbo 7 | 1,1,2,1,1,3,2,… | 163% |
Turbo 8 | 1,1,1,2,1,1,1,3,… | 173% |
Turbo 9 | 1,1,1,1,2,1,1,1,2,… | 182% |
Turbo 10 | 1,1,1,1,1,1,1,1,1,2,… | 191% |
Turbo speeds above 4 require a code to unlock.
Street Fighter Alpha 2 (PSX)*
Normal Turbo 1 |
none | 100% |
Turbo 2 | 15,15,15,… | 107% |
Turbo 3 | 7,7,7,… | 114% |
Turbo 4 | 4,4,5,4,4,5,… | 123% |
Turbo 5 | 3,3,3,… | 133% |
Turbo 6 | 2,2,2,… | 150% |
Turbo 7 | 1,2,1,2,2,2,1,2,1,2,2,2,… | 160% |
Turbo 8 | 1,2,2,1,2,2,… | 160% |
Darkstalkers 3 (PSX)*
Normal | 31,31,31,… | 103% |
Turbo Speed 1 | 4,4,5,4,4,5,… | 123% |
Turbo Speed 2 | 3,4,3,4,3,4,4,3,4,3,4,3,4,4,… | 128% |
Turbo Speed 3 | 3,3,3,… | 133% |
Turbo Speed 4 | 2,3,2,3,… | 140% |
Turbo Speed 5 | 2,2,2,2,3,2,2,2,2,3,… | 145% |
Turbo Speed 6 | 2,2,2,… | 150% |
Turbo Speed 7 | 1,2,2,1,2,2,… | 160% |
Turbo Speed 8 | 1,2,1,2,… | 167% |
Marvel Super Heroes (PSX)
Normal | none | 100% |
Turbo Speed 1 | 10,10,10,… | 110% |
Turbo Speed 2 | 8,8,8,… | 113% |
Capcom vs. SNK Pro (PSX)
Normal Free: Normal |
6,6,6,… | 117% |
Turbo Speed 1 Free: Turbo |
4,4,4,… | 125% |
Turbo Speed 2 | 3,3,3,… | 133% |
Turbo Speed 3 | 2,2,2,… | 150% |
Turbo Speed 4 | 1,1,1,… | 200% |
Maj found the patterns for CFE using the beta version’s frame advance feature.
Capcom Fighting Evolution (PS2)
Game Speed 1 | none | 100% |
Game Speed 2 | 6,6,6,… | 117% |
Game Speed 3 | 4,4,4,… | 125% |
Game Speed 4 | 3,3,3,… | 133% |
Game Speed 5 | 2,2,2,… | 150% |
This is really helpful, thanks =] Before checking this I wasn’t sure what settings to use to avoid frameskip completely in some games.
“if the one frame you need to execute the reversal gets skipped, you will be vulnerable for at least one frame and may be helpless against a meaty attack or tick throw”
Only meaty throws! If it’s a regular zero frame throw, the person attempting the tick is prey to the same skipped frame, thereby making the one-off reversal still work. Only a meaty, multi-frame throw could screw you over (running bear, ST gief SPD glitch, raging demon).
Well, not SPD glitch, since that still needs inputs… :P