System Free Step Dash Cancel Bug

UPDATE: this is not limited to :8:/:2::h+k:, and works with almost every move that has "Followup interval"

I've finally managed to consistently reproduce the free step dash cancel bug, that I've seen long time ago (DOA5LR steam version 1.10C).

It seems that if you buffer dash ( :4::4: or :6::6: ), then input :2: on the idle frame (or actually 1 frame before that, so that the game displays it on the idle frame), and :h+k: on the following frame, the attack will have reduced recovery frames (and will start with 2 idle frames instead of 1). Although it seems this only applies to characters who got a followup after that move:

Brad Wong (0 recovery frames), Kokoro (2 recovery frames), Christie (1), Hayabusa (10 instead of 22), Nyotengu (1), Eliot (1), Akira (3), Jacky (0) and Leon (cancels attack completely). Not sure how Hayabusa ended up in this list, since he actually doesn't have a followup after that.

After the recovery is canceled you are free to do anything - e.g. with Christie you can get natural combo on :2::h+k: (cancel) :P: .

I've only tested :2::h+k: on all chars, but I believe this thread mentions more moves that can benefit from this bug. Please share if you find anything else :)

Some gifs:

Here's a macro for Razer Synapse that I used to record this gifs: [link]
(Put it to C:/Program Data/Razer/Synapse/Accounts/<Account>/Macros/)

Alternatively here's pseudo code of the macros:
// a hold to access buffering / idle frame
press: left
press: hold
wait: 50ms
release: left
release: hold

// buffer 66
wait: 380ms
press: right
wait: 16ms
release: right
wait: 17ms
press: right
wait: 17ms
release: right

// press 2 before the idle frame (so that the game shows it on the idle frame)
wait: 16ms
press: down

// press h+k 1 frame after
wait: 16ms
press: h+k (single button)

// release 2h+k
wait: 37ms
release: down
release: h+k (single button)

Maybe @WAZAAAAA will volunteer to provide an AHK version of that
;save this file as anything.ahk, install AutoHotkey to run it, press F1 to start

;optimizations for better input accuracy
#SingleInstance Force
#MaxHotkeysPerInterval 99000000
#HotkeyInterval 99000000
#KeyHistory 0
ListLines Off
Process, Priority, , R
SetBatchLines, -1
SetKeyDelay, -1, -1
SetMouseDelay, -1
SetDefaultMouseSpeed, 0
SetWinDelay, -1
SetControlDelay, -1
SendMode Input
SetTitleMatchMode, 2
    DllCall("Sleep",UInt,WaitFrames * 16.8) ;how many milliseconds does a frame last

;This macro/script needs the game to have a keyboard as the main input device, so unplug your controllers if necessary.
;H+K/P+K are written as H#K/P#K due to technical limitations.
;Please customize these keyboard configs to match your in-game mapping.
;Default mapping is for a QWERTY keyboard - in-game TYPE-A.
H = j
P = k
K = l
P#K = u
H#K = o
T = m
Tag = i
8 = up
2 = down
4 = left
6 = right

;example script of Hayabusa/Ayane/Hayate/Kasumi doing a basic FSDC with 8H+K
$*F1:: ;the key to start executing inputs
;do any move to access buffering and the idle frame. A hold is good for tests because it's the same timing for every character
    send,{%4% down}
    send,{%H% down}
    send,{%4% up}
    send,{%H% up}
;buffer a dash (66 or 44) inside the previous move
    send,{%6% down}
    send,{%6% up}
    send,{%6% down}
    WaitFrames(4) ;when FSDCing with 8, waiting 3 or 4 frames here (aka same with the idle frame or the next frame) are both valid. When FSDCing with 2 it's stricter
    send,{%6% up} ;releasing 4/6 on the same frame/next frame/frame after 8 (= 3 frames) makes the idle input part become a 2-frame window instead of 1-frame. This extra leniency is not possible to obtain when you FSDC using 2
    send,{%8% down} ;we are pressing 8/2 on the idle frame here
    WaitFrames(2) ;this can be WaitFrames 1/2/3 when doing 448/668, but it has to be 1 when doing 442/662
;do any move with FOLLOWUP INTERVAL on the NEXT FRAME here
    send,{%H#K% down}
    send,{%8% up} ;make sure you're holding down 8/2 for at least 3 frames, or else no FSDC
    send,{%H#K% up}
;If you intend to FSDC with 442/662 instead, releasing 6/4 and pressing 2 must NOT happen on the same frame, so you must add +1 wait frame between the two, reduce by -2 the "WaitFrames(4)", and change the 1/2/3 part to 1

$*Ins::Reload ;press Ins after editing this script to reload it and test your changes quickly (recommended)
Thanks @WAZAAAAA ! Check his full post here

Bonus gif

UPDATE: this also works with :8::h+k: (e.g. on Christie it performs her :h+k: and cancels its recovery after 3rd recovery frame - )
This also works on Kasumi (1 recovery frame), Alpha (1 recovery frame), Helena (12), Bayman (1), Rig (0), Ayane (1), Hayabusa (1), Tengu (3), Akira (full cancel on 2nd startup frame), Sarah 9H+K (0), Hayate (1), Naotora (full cancel), Momiji (0) and Ein (3)

Helena's H+K is actually a guard break and with the freestep cancel it's +16 on block which guarantees a launcher (at least first hit) - here's recording without using macros (took some time to get used to the timing)

Also works with Hitomi's 9H (reducing recovery frames count to 3)

UPDATE #2: Also works with Christie's 8P, Rig's 8K and Rig's 7K (need to input as :8: :pause: :7::+::K: with :8: being on the idle frame and :7::+::K: on the following frame)

UPDATE #3: Also works with Rig's 6K, although input is very strict - you need to press :8: on the idle frame, and on following frame release :8: and press :6: and :K:

UPDATE #4: In-depth explanation
Last edited:


Well-Known Member
This is delicious, finally. I'm working on exploring this more, the exploiting potential of this is actually horrifying, we might've broken the DOA series ladies and gentlemen lmao

:bradwong: (0 recovery frames), :kokoro: (2 recovery frames), :christie: (1), :hayabusa: (10 instead of 22), :nyotengu: (1), :eliot: (1), :akira: (3), :jacky: (0) and :leon: (cancels attack completely).
Not sure how Hayabusa ended up in this list, since he actually doesn't have a followup after that.
Explanation of when a move will be interrupted using the glitch:
8H+K Christie
normal 14(2)20
glitch 14(2)3 total 19

2H+K Christie
normal 16(3)24
glitch 16(3)1 total 20

2H+K Brad Wong
normal 18(4)26
glitch 18(4)0 total 22

8H+K Hayabusa
normal 14(2)35
glitch 14(2)1 total 17

2H+K Hayabusa
normal 23(5)22
glitch 23(5)10 total 38
TL;DR it's dictated by the FOLLOWUP INTERVAL (move details page 3).
Even Hayabusa 2H+K has that... except he can't followup with anything. Most likely a code leftover from DOA4 where he actually had a string starting from 2H+K.
1- Is this just for 1.10C or tried on anything before and worked?
2- PC only or multiplatform?
3- What is the potential of unholdables with this?
Well since you can now cancel recoveries, you naturally have more options for unholdables


Well-Known Member
Amman, Jordan
Main Character
@WAZAAAAA, what's wrong with the following ahk script, I haven't used it since maybe 2014

SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
#SingleInstance Force
SetTitleMatchMode 2
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1

; A hold to access buffering / idle frame
Send, {a down}
Send, {k down}
Sleep, 50
Send, {a up}
Send, {k up}

; Buffer 66
Sleep, 380
Send, {d down}
Sleep, 16
Send, {d up}
Sleep, 17
Send, {d down}
Sleep, 17
Send, {d up}

; Press 2 before the idle frame (so that the game shows it on the idle frame)
Sleep, 16
Send, {s down}

; Press h+k 1 frame after
Sleep, 16
Send, {o down} ; (single button h+k)

; Release 2h+k
Sleep, 37
Send, {s up}
Send, {o up} ; (single button h+k)
I have custom keyboard for DOA5LR and not the default key bindings


Well-Known Bi Kasumi/Phase Fanboy ⚥
Premium Donor
Main Character
So do you hold, do 66 or 44 and then press down immediately before doing the move because I can't seem to do it, I've only done it once with Kokoro using her 8P move...
Forgot your password?