This is a beta
Which here means something specific, not a disclaimer. The move names and inputs were
imported, never verified — nothing in the command data has been checked against
the game, so a move can be listed with the wrong input and this page will happily agree with
it. And the timing windows are a reasonable guess at SF6’s, not a measurement of them.
So treat a detection as a strong hint rather than a verdict, and treat “that should have
come out” as worth checking rather than proof. If you find a command named wrongly,
that is a real find and the
issue tracker
wants it.
What this version cannot do
This page reads your controller through the browser and nothing else, which sets hard limits
that have nothing to do with how well it is written:
- Timing is only as good as your screen. The Gamepad API has no events — it is
polled, once per redraw. On a 60 Hz display that is one sample per frame at best, so
every frame count can be out by one, and one frame is usually the thing you are asking
about.
- It stops when the page is covered. Not when it loses focus — a visible window
on a second monitor keeps reading — but a browser that is minimised or fully behind the
game runs no animation frames at all, and this goes blind.
- It cannot read the keyboard. Keyboard input reaches whichever window has focus, and
during a match that is the game. There is no keyboard support here at all, and none is
possible.
- It can only see a pad plugged into this machine. Watching from a phone or a second
PC while you play is not something a web page can do.
- It cannot see switch chatter. A worn button bouncing open and shut does so faster
than any browser can sample.
The agent removes every one of these: it samples at about 1 kHz on its own thread,
regardless of what any window is doing, reads the keyboard if you ask it to, and serves this
same viewer to your phone over your own network.
What this does not do
It reads your controller and nothing else. It does not read the game’s memory, attach to
its process, or hook anything — so it cannot tell you what the game actually did, only
what you actually pressed. Everything it says about a move is inferred from your inputs and
the command data below. It sends no input to the game either.
Where your data lives
Nowhere but this browser. Your controller layout and settings are kept in this device’s
local storage and never leave it. There is no account, no telemetry and no server — this
page is static files, and clearing site data clears everything it knows.
Command data
Move names and notations come from
4rays/sf6-move-data,
imported rather than verified. No move in it has been checked against the game, so a wrong
command is a real possibility.
Licence and notices
MIT licensed, and built with no third-party libraries. Source, issues and releases:
github.com/aaronding/sf6-input-check.
An unofficial fan tool, not affiliated with, endorsed by, or connected to Capcom.
Street Fighter is a trademark of Capcom Co., Ltd. Move names are used descriptively to
identify the moves they name.