SF tends to just have total time for a motion (e.g. a DP gets 16f to total enter it, doesn't matter space between dirs as long as all within 16f), SG gives individual slop space for each consecutive input. More slop, less slop, which dirs between are allowed is up to the game, SG input parser accounts for no dirs between DF and D, but allowed weird dirs between F and D.
D,DF,F+P: look for P pressed/released; if not found, no match. If found, allow some (SG case, 0 to 4) slop frames and search backward for F; if found, allow slop frames and search for DF; if found, search for D, if found, got motion.