Category Archives: Technical

SF4 Attack Movement Classifications

The Street Fighter IV series combo system is highly movement-oriented. Most characters have rigid juggle flowcharts, which means it usually doesn’t take long to find all their best juggle combos. That doesn’t leave much room for improvement in the air, so we have to focus on the ground for further optimization.

The key to constructing advanced SF4 and SSF4 ground combos is understanding how each attack affects the distance between your character and the opponent. Generally speaking, all attacks are supposed to push the opponent away to prevent combos from becoming infinites. Your task is to find ways to minimize or negate that countermeasure.

The first thing you should look for are attacks that move your character forward automatically. For example, Cody’s F+MP glides ahead during startup and produces frame advantage, essentially eliminating its own pushback. If you can find a way to combo back into any such forward-moving attack, you’ll probably end up with a loop, as SF4 Akuma’s far s.HK proved.

Another method of creating forward movement is to simply walk forward between attacks. For instance, Ken’s s.LP provides +7 frame advantage and connects on the 4th frame, which gives him 3 frames to walk forward between each jab.

Of course, every character can also combo into EX Focus Attack or Focus Attack dash cancel to cover a ton of ground at the cost of two meter bars. Basically SF4’s FADC system allows you to glue together any three meterless ground combos of your choosing.* Thus the emphasis shifts toward optimizing each of those individual pieces.

Continue reading

Training Mode Design for ComboVid Makers

I know it’s a lot to ask, but i really think game developers should keep combo video makers in mind when designing Training Mode options. Fighting games receive tons of exposure through combo videos. From a marketing perspective, it pays to make our lives a little easier. Here are a few Training Mode suggestions that i would like to see in future fighting games.

    Stage Select
This is a no-brainer, but some games (such as SSF4) still don’t have it. Unless you want pages upon pages of Training Mode screenshots in u2b search results, let us choose a different background. Otherwise you’re forcing us to represent your game by its blandest stage.

    Dummy Status Options
In addition to standardized dummy actions (stand/crouch/jump/record/playback/human/CPU), we also need basic status settings such as counterhit, dizzy control, and defensive options. Then if it’s possible to set the dummy to perform a specific move at every reversal opportunity, many players would find that helpful. For example, sometimes we want the opponent to perform a Dragon Punch or throw as they come out of hit stun or block stun.

    Dummy Record / Playback
Obviously the capability to record and play back a sequence of commands with the dummy character is extremely convenient. Most games allow ten seconds of recording time, and that’s fine. Changing characters in SF4 doesn’t erase the recording, which is actually very useful for testing a combo against multiple opponents. You simply record the combo with the dummy, and swap characters until you find the ideal punching bag.

Continue reading

Scripting Shortcuts and Time-Saving Tricks

The first step to programming emulator combos is setting a convenient starting point. Lately i’ve been creating all my save states on the exact frame when the “Fight!” logo disappears. I’ve noticed this makes it easier to transplant combos from one save state to another, in case i ever need to change stages or costume colors. But i don’t quite recommend my approach.

If you don’t anticipate stage/color selection being a concern, it will save a lot of time to create your save state after you’ve maxed out both characters’ super bars, walked them into the corner, gotten rid of the “First Attack” message, and done every other little thing that you need to do before the combo begins.

Otherwise you’ll have to incorporate it all into your script and watch it play out every time you want to test the slightest alteration of your combo. Of course, the Fast Forward (aka Throttle) feature dramatically cuts down waiting periods, but they still add up.

By the way, it’s not a bad idea to copy all your save states into a backup folder in case you accidentally overwrite them. If your combo contains luck manipulation of any sort, losing your save state will often render your script obsolete.

Continue reading

How to Configure Initial Emulator Input Settings

Before you can start using MacroLua, the first thing you need to do is install and configure a supported emulator. For arcade games, your primary choices are FBA-RR and MAME-RR. Both work fine, so choose whichever one you’re familiar with.

Due to the sheer number of built-in commands, the default control settings tend to have some overlapping key assignments. Sort those out first. For instance, FBA-RR has Load State 2 and Diagnostic both assigned to F2. Likewise, they have Load State 3 and Reset assigned to F3.

My general advice is clear everything that doesn’t look useful at first glance. The less clutter you have to deal with, the better. You can always add more stuff later.

You’ll be using Reset a lot, and you’ll need Diagnostic as well, so either map those to different keys, or remove the Load State assignments. It’s also a good idea to clear whatever hotkey is assigned to Tab, because you’ll be using Alt+Tab frequently to switch back and forth between your emulator and your script file.

Continue reading

How to Find Charge Switch Points

Using MacroLua, you can retain charge while performing crossups. The basic idea is to swap directions on the exact frame your character switches sides with the opponent.

If you’re wondering whether this is a legitimate technique, keep in mind that most fighting games sample inputs 60 times per second. In physical terms, all you’d have to do is flick your wrist or finger from one side to the other in under 1/60th of a second, without getting caught in the middle. Therefore it’s possible to perform this without tool-assistance, but obviously very difficult to avoid detection and partly dependent on sheer luck.

The most obvious scripting method is pure trial and error. Simply hold the starting direction, switch directions at some point, and keep adjusting that wait period frame by frame until it works. Here’s an example from Street Fighter Alpha 2, performed under the Normal Speed setting, with Charlie and Birdie standing at point blank range:

W60,UR.W27,5.W19,2.W60!
# SFA2 Charlie crossup j.MK, s.MP

W60,UR.W2,_L.W10,^L_R.W13,5.W19,2.W5,^R.L1.W60!
# SFA2 Charlie crossup j.MK, s.MP xx failed LP Sonic Boom attempt

W60,UR.W2,_L.W11,^L_R.W12,5.W19,2.W5,^R.L1.W60!
# SFA2 Charlie crossup j.MK, s.MP xx failed LP Sonic Boom attempt

Continue reading