Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

input-programs

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.

Contents

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.

Docs

  • 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

Why these exist

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.

Building

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.sh

Signing

Binaries 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages