Yeah I’m just starting to get that link down 100% in my matches. Another useful variation of the bnb combo.
lk lp lp lk SA. This one does the same damage as the lk lp lk SA, but it’s a heck of a lot easier to link. Maybe does more stun? I don’t know. Best used against shotos.
lp lp lk SA. This link is really easy too. I don’t know why, but this combo is 100% for me in matches even though I don’t practice it.
This kinda thing makes me wish they added a few things into training mode. Ok I attempt it and miss the link. Ok was I too soon or too late? By how much? The only thing training mode can tell me is I definitely didn’t get it. Wish they would have some feature that helps you learn these as its hard to get timing down if your doing nothing but guessing on it.
Set the training dummy to autoblock.
now lk lp lk SA
If the lk gets blocked you linked too late
if the lk doesn’t get blocked but the sa doesn’t come out you linked to soon (didn’t actually link but canceled the lp)
I don’t think knowing the exact frame you missed it by would help much… It kinda does help to know the frame data though. If it’s a 1 frame link then it’s always gonna be iffy (Yes Daigo and such miss these), if it’s 2 frames then most people will get it to about 95% or so, which is sufficient. Anything more is a cakewalk (Which Cammy doesn’t have iirc, besides crap c.HP combos and if you count linking from CS).
DDR-like link gauntlet would be an awesome minigame, though.
Yo my fellow san dieagn ty ty for those other link combos, I was able to pull those off much easier! btw how did you do at Comic Odyssey?? I really really wanted to go but after a day of work and a group project my brain was like a bowl of oatmeal haha. My buddy and I want to try and get in the local scene though…
Something not hooked into SF4 that just does the rhythm would be super easy and I could throw together an open source program pretty quickly. I’ve never read from an attached game controller so that might be in version two but this sounds like something I could do with very minimal effort.
I put together a regular windows application to measure milliseconds between key presses and it wouldn’t register anything faster than 31 milliseconds unless I pressed them at the same time and I got 0 ms. I rewrote it as a bare bones console application (no gui/user interface) and ran into the same 31 ms threshold, which indicates something about standard windows keyboard buffers. That reminded me of something I read recently (http://forums.shoryuken.com/showthread.php?t=207257&page=2 second post on page and ensuing argument on page 3). If this is correct then a one frame link is actually be 33.333 milliseconds at 30 FPS and not 16.666 milliseconds at 60 FPS. They seem to decide on 60 FPS. Can anyone confirm one way or other for sure? If a one link frame is 16.666 ms I’ll grab a copy of the directx API (which I’d likely have to do to take controller input anyway) and see if that can get me keyboard data faster.
Edit: the threshold may end up not being much an issue as you never have to hit two buttons within one frame of each other, simply hit a specific frame several frames out from the first press.
Edit2: Additional consideration. You press a button. A second button being pressed 0 to 16.665 ms later is the same frame? Yes? 16.666 to 33.333 would be in frame 1. Yes?
I believe you’re right with the 16.666 to 33.33 would be 1 frame.
so guys, I looked up the cr. HP to cr. HK. Looks like it’s a 1 frame link. Is this the kind of combo I’d want to p-link? Gonna have to practice this on Friday.
To cancel a normal into another normal you must press the button for the second normal AFTER the startup frames of the first normal during the active frames or recovery.
To link a normal into another normal you must press the button for the second normal AFTER the recovery frames before the frame advantage on hit is gone.
So for crLK, crLP, crLK, HK SA you need to
crLK
then crLP from frames 4 to 14 for a cancel or 15 to 16 for a link
then crLK from frames 13 to 16 for a link
then HK SA from frames 4 to 14 for a cancel.
If this is correct i can have a mockup trainer for this combo sometime tonight as long as I don’t get distracted.
Hmm, wiki lists frame data as…
startup, active, recovery, total
but the total always seems to be 1 less frame then startup + active + recovery.
What gives?
Here’s the code so people knowledgeable in frame data can check the math.
Public Class Form1
Dim ComboStatus As Integer
Dim FirstMS As Date
Dim LastFrame As Integer
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
Dim kp As Date
Dim ms As Long
Dim inter As TimeSpan
Dim frame As Long
Select Case ComboStatus
Case -1
ComboStatus = 0
lblLink1.ForeColor = Color.Black
lblLink2.ForeColor = Color.Black
lblLink3.ForeColor = Color.Black
lblLink4.ForeColor = Color.Black
lblLog.Text = ""
Case 0
ComboStatus = 1
FirstMS = Now
lblLink1.ForeColor = Color.Green
LastFrame = 0
lblLog.Text = "Crouching Light Kick" & vbCrLf
Case 1
kp = Now
inter = kp.Subtract(FirstMS)
ms = TMS(inter)
frame = TFrames(ms)
If frame < 4 Then
lblLog.Text = lblLog.Text & "Crouching Light Punch - TOO EARLY, KEEP MASHING! Frame " & frame & ". MS since start of combo = " & ms & vbCrLf
End If
If frame >= 4 And frame <= 14 Then
lblLink2.ForeColor = Color.Green
lblLog.Text = lblLog.Text & "Crouching Light Punch - Cancelled into on frame " & frame & ". MS since start of combo = " & ms & vbCrLf
ComboStatus = 2
LastFrame = frame
End If
If frame = 15 Or frame = 16 Then
lblLink2.ForeColor = Color.Blue
lblLog.Text = lblLog.Text & "Crouching Light Punch - Linked into on frame " & frame & ". MS since start of combo = " & ms & vbCrLf
ComboStatus = 2
LastFrame = frame
End If
If frame > 16 Then
lblLog.Text = lblLog.Text & "Crouching Light Punch - COMBO FAILED. TOO LATE, MASH MOAR! Frame " & frame & ". MS since start of combo = " & ms & vbCrLf
lblLink2.ForeColor = Color.Red
ComboStatus = -2
End If
Case 2
kp = Now
inter = kp.Subtract(FirstMS)
ms = TMS(inter)
frame = TFrames(ms)
If frame - LastFrame < 4 Then
lblLog.Text = lblLog.Text & "Crouching Light Kick - TOO EARLY, KEEP MASHING! Frame " & frame & ". MS since start of combo = " & ms & vbCrLf
End If
If frame - LastFrame >= 4 And frame - LastFrame <= 12 Then
lblLink3.ForeColor = Color.Red
lblLog.Text = lblLog.Text & "Crouching Light Kick - COMBO FAILED. Cancelled into on frame " & frame & ". Frames since last move = " & frame - LastFrame & ". MS since start of combo = " & ms & vbCrLf
ComboStatus = -2
End If
If frame - LastFrame >= 13 Or frame - LastFrame = 16 Then
lblLink3.ForeColor = Color.Blue
lblLog.Text = lblLog.Text & "Crouching Light Kick - Linked into on frame " & frame & ".Frames since last move = " & frame - LastFrame & ". MS since start of combo = " & ms & vbCrLf
ComboStatus = 3
LastFrame = frame
End If
If frame - LastFrame > 16 Then
lblLog.Text = lblLog.Text & "Crouching Light Kick - TOO LATE, MASH MOAR! Frame " & frame & ". Frames since last move = " & frame - LastFrame & ". MS since start of combo = " & ms & vbCrLf
lblLink3.ForeColor = Color.Red
ComboStatus = -2
End If
Case 3
kp = Now
inter = kp.Subtract(FirstMS)
ms = TMS(inter)
frame = TFrames(ms)
If frame - LastFrame < 4 Then
lblLog.Text = lblLog.Text & "High Kick Spiral Arrow - TOO EARLY, KEEP MASHING! Frame " & frame & ". MS since start of combo = " & ms & vbCrLf
End If
If frame - LastFrame >= 4 And frame - LastFrame <= 14 Then
lblLink4.ForeColor = Color.Green
lblLog.Text = lblLog.Text & "High Kick Spiral Arrow - Cancelled into on frame " & frame & ". Frames since last move = " & frame - LastFrame & ". MS since start of combo = " & ms & vbCrLf
ComboStatus = -1
End If
If frame - LastFrame > 15 Then
lblLog.Text = lblLog.Text & "High Kick Spiral Arrow - TOO LATE, MASH MOAR! Frame " & frame & ". Frames since last move = " & frame - LastFrame & ". MS since start of combo = " & ms & vbCrLf
lblLink4.ForeColor = Color.Red
ComboStatus = -2
End If
End Select
If ComboStatus = -2 Then cmdShame.Visible = True
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboStatus = 0
End Sub
Public Function TFrames(ByVal ms As Long) As Long
TFrames = Int(ms / (1000 / 60))
End Function
Public Function TMS(ByVal inter As TimeSpan) As Long
TMS = inter.Milliseconds + 1000 * inter.Seconds + 60000 * inter.Minutes()
End Function
Private Sub cmdShame_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdShame.Click
ComboStatus = 0
lblLink1.ForeColor = Color.Black
lblLink2.ForeColor = Color.Black
lblLink3.ForeColor = Color.Black
lblLink4.ForeColor = Color.Black
lblLog.Text = ""
cmdShame.Visible = False
End Sub
End Class