Small, self-contained Windows tools for testing and debugging input, built to run under Wine / Winlator on Android as well as on real Windows.
Everything here is written from scratch, has no installer, no runtime
dependencies beyond core Windows DLLs, and runs as a single portable .exe.
| Tool | What it does |
|---|---|
inputcontrol/ |
Input Control — keyboard, mouse and gamepad test suite in one exe. Menu-driven, with separate XInput and DirectInput gamepad tests so the two can be compared. |
keytest/ |
Keyboard scan code / virtual key viewer. The keyboard test on its own, kept as a smaller standalone tool. |
- Input Control — the test suite: what each test covers and why
- KeyTest usage — emulator-debugging workflow, how to read the event log
- Scan code reference — PS/2 set 1 codes, and the pairs that differ only by the extended flag
Emulated Windows environments (Wine, Winlator, WinNative) frequently get keyboard
input subtly wrong: a missing key-up, a dropped extended flag that turns Home
into numpad 7, a modifier that reports the wrong side. Most keyboard testers
are commercial, need an installer, or lean on a WH_KEYBOARD_LL low-level hook —
which is exactly the mechanism least likely to work under emulation.
These tools avoid all of that: plain message-queue input, no hooks, nothing system-wide, nothing that needs elevation or install.
Cross-compiled from Linux with mingw-w64. Per-tool build scripts under each
directory; see keytest/build.sh.
sudo apt-get install mingw-w64 osslsigncode
cd keytest && ./build.shBinaries are Authenticode signed with a self-signed certificate
(keytest/signing/keytest-cert.cer). That proves the file has not been altered
since signing and nothing more — no public CA vouches for it, so SmartScreen will
still warn on real Windows. Wine and Winlator do not check Authenticode at launch
at all, so it makes no difference there.
The private key is deliberately not in this repo. To rebuild and re-sign,
generate your own key — see keytest/build.sh.