Skip to content

History

Revisions

  • Wii docs: scope the Windows-pairing limitation to the native wizard Reword the blanket 'Windows cannot pair a Wii controller' statements in Home, Wii-Controllers, and Devices to scope the limitation to the Windows pairing wizard, which expects a typed PIN. Avoids implying PadForge is the only tool that can pair Wii controllers (reWASD does in-app Wii pairing since v9.4).

    @hifihedgehog hifihedgehog committed Jun 19, 2026
    8e1f926
  • 3.5.0: technical internals docs + screenshot refresh Add Wii-Controllers-Internals (pairing ceremony, SDL hidapi_wii read path, rescan recovery, capability gate). Extend Input-Pipeline (mouse cursor source, shift cycle, trigger routing, source kinds + ramp, macro clipboard + cursor actions) and SDL3-Integration (Wii fork fixes, axis capability gating). Refresh all page screenshots against 3.5.0; add the Trigger Routing card shot and link it from Force Feedback and Home.

    @hifihedgehog hifihedgehog committed Jun 19, 2026
    7d9cb16
  • 3.5.0 docs: add Wii Controllers page. Trigger routing, mouse-cursor source, queue/shift layers, mouse macros, Latch and No Button modes across pages

    @hifihedgehog hifihedgehog committed Jun 19, 2026
    199776a
  • Docs-audit fixes across the 3.4 pages Five-lens audit against the code: - Wheel: RPM-LED telemetry reads the SCS plugin, not OutGauge. Add the OutGauge games (BeamNG.drive, Live for Speed). Thrustmaster friction renders as damper (same 0x07 as inertia). Drop the "only" framing on the periodic generator. - Remote Link: gamepad-only is off by default (the pair-dialog checkbox starts unchecked), not "unknown peers start limited". Secure identity is DPAPI machine scope, not "this Windows account". - Home: lightbar count thirteen -> fifteen. Macro fire modes four -> five. Remote Link nav framed as many PCs. - Lighting: "thirteen base modes" -> "thirteen base entries" (Off plus twelve), consistent with the fifteen-mode intro. - Controller Audio: tab scope is per pad per slot. - Wheel Force Feedback dev page: ReEvaluate -> TickFfb (no ReEvaluate exists). "8-byte logical report" -> vendor-shaped command (Thrustmaster pads to 64/32).

    @hifihedgehog hifihedgehog committed Jun 15, 2026
    bb8aa00
  • Remote Link: frame device sharing as many PCs, not two Remote Link is a many-to-many mesh. LinkServer holds a list of connections, a shared device's input fans out to every consuming peer, and reverse feedback is addressed by the owning peer's fingerprint. Pairing is pairwise (one six-digit code per pair), but a PC can be linked to many others and one shared controller can drive games on several PCs at once. Reword the two-PCs framing across the callout, feature card, screenshot caption, FAQ, setup steps, and requirements.

    @hifihedgehog hifihedgehog committed Jun 15, 2026
    ffe0101
  • Add 3.4 developer-reference pages and cross-links New internals pages for Remote Link, Controller Audio, Wheel force feedback, and MIDI input, each grounded in the live source (classes, files, data flow). Link them from the Home developer-reference index. Add the MIDI enumeration phase and the vendor-wheel force-feedback branch to Input Pipeline, the new persisted fields to Settings and Serialization, and the engine-side subsystems note to Services Layer. Also small prose fixes to the user pages: drop a defensive "not input-only" phrasing on Remote Link, fix a link alias on Wheel, Americanize a spelling on MIDI Input.

    @hifihedgehog hifihedgehog committed Jun 15, 2026
    f8f6bdd
  • Refresh impulse-triggers screenshot (3.4 build)

    @hifihedgehog hifihedgehog committed Jun 15, 2026
    43c54d4
  • Refresh screenshots for the 3.4 build

    @hifihedgehog hifihedgehog committed Jun 15, 2026
    31cbaea
  • Add 3.4 feature screenshots: Audio, Wheel, MIDI input, Remote Link

    @hifihedgehog hifihedgehog committed Jun 15, 2026
    1ef1a96
  • Frame Remote Link internet play as a VPN capability

    @hifihedgehog hifihedgehog committed Jun 15, 2026
    a382fbc
  • Document 3.4 features: Remote Link, Wheel, Controller Audio, MIDI Input New pages for the four 3.4 headline features. Add a 3.4 What's new section and nav links on Home. Cross-link from Force Feedback (native wheel FFB), Devices (MIDI input cards), and Driver Management (MIDI input needs Windows MIDI Services). Audio page states the mirror is a Windows-output loopback, not game-audio packet interception, and that DS4 audio is Bluetooth-only. Remote Link page states local-network-only with no built-in internet path.

    @hifihedgehog hifihedgehog committed Jun 15, 2026
    591880e
  • Steering: 'act like a steering wheel' wording (#94)

    @hifihedgehog hifihedgehog committed Jun 6, 2026
    84fa6c6
  • Steering: Off (was Linear) is the normal-stick default (#94)

    @hifihedgehog hifihedgehog committed Jun 6, 2026
    24e62f7
  • Steering: reword 'into a steering wheel' to 'steer like a wheel' (#94) The stick isn't mapped to a wheel; it's used to steer like one.

    @hifihedgehog hifihedgehog committed Jun 6, 2026
    a990e4f
  • Steering: new page for winding / 2D angle-to-axis / motion-lean modes (#94) Document the three steering stick modes, their tunables and defaults, the at-lock feedback layer, and the per-stick Sticks-tab config. Add a Steering Source Kinds section to Input-Pipeline and a feature-table row + link on Home. Math credited to JoyShockMapper (geometry only; original C#, no GPL code incorporated).

    @hifihedgehog hifihedgehog committed Jun 6, 2026
    cd5d4d6
  • Engine-Library: drop GestureState.Suspended references The Suspended lifecycle state and its global gesture-suspend hotkey were ripped from the app in a4c681d (PadForge main). Update the GestureRecognizer state-machine description and the lifecycle-state table in TouchpadGestureContext to match.

    @hifihedgehog hifihedgehog committed May 26, 2026
    1ca4c1b
  • Semicolon → period: two more pseudo-period uses 3D-Model-System: "Symbol meshes get PlayStation-specific colors; base meshes default to black" — two factual clauses, period works. Settings-and-Serialization: "Multiple UserSettings may reference the same PadSettingChecksum; only one copy is serialized" — same pattern. Both are the AI-tell "X; Y" where Y is a separately complete clause that doesn't strictly belong inside the first sentence.

    @hifihedgehog hifihedgehog committed May 26, 2026
    36f39ff
  • Semicolon → period across dev pages The "X; Y" pattern where the two clauses are separately complete reads as the AI-tell pseudo-period semicolon called out in the project's writing style notes. Replace with a period (or comma where the relation is conjunctive) across: - Architecture-Overview (PtpDeviceState description, added in this sweep) - Controller-Slots (Impulse Triggers parenthetical) - Engine-Library (three slot-assignment / template-preprocess paragraphs added in this sweep) - Home (Driver-Installation-Internals table row) - Services-Layer (move-slot-to-group-tail flow) - Settings-and-Serialization (v2 Preset enum migration note) - Troubleshooting (UAC accept step) - Virtual-Controllers (Gamepad struct dispatch note) No semantic changes.

    @hifihedgehog hifihedgehog committed May 26, 2026
    1aad927
  • Devices: link "precision-touchpad reader" to its Engine-Library entry Cross-link from the user-facing Devices page to the dev-section PrecisionTouchpadReader docs so a reader following the PTP mention can drop into the implementation detail.

    @hifihedgehog hifihedgehog committed May 26, 2026
    55d47fd
  • Settings-and-Serialization: TouchpadSettings collection schema Add a dedicated subsection covering the v3.3 TouchpadSettings collection on PadSetting. Shows the on-disk XML structure (outer Settings wrapper carrying DeviceGuid + TouchpadIndex; nested Settings carrying the actual TouchpadGestureSettings attributes), runtime lookup via the InputManager.TouchpadGestureSettingsProvider Func, and why the collection is excluded from CopyablePropertyNames (deep-copy semantics). Was previously only mentioned in the excluded-properties list with no schema detail; the reader had to read PadSetting.cs and TouchpadSettingsEntry.cs to understand the on-disk shape.

    @hifihedgehog hifihedgehog committed May 26, 2026
    4bd4497
  • Engine-Library: document TouchpadSettingsEntry XML wrapper The wrapper that pairs each TouchpadGestureSettings instance with its (DeviceGuid, TouchpadIndex) key under PadSetting.TouchpadSettings. Without it the per-pad settings bundle round-trips with no key and the engine has no way to look up the right entry through the TouchpadGestureSettingsProvider Func.

    @hifihedgehog hifihedgehog committed May 26, 2026
    dc323dd
  • $Q attribution: include Magrofuoco in brief refs Magrofuoco contributed the canonical qdollar.js implementation and is a joint copyright holder on the reference; the Touchpad page already cites all four authors. Bring Engine-Library and Architecture-Overview into line.

    @hifihedgehog hifihedgehog committed May 26, 2026
    96f61a5
  • Touchpad pipeline: full class-by-class dev reference Engine-Library: - Add GestureRecognizer, ShapeRecognizer, AngularMarginRecognizer, ShapeTemplate, InBoxShapeTemplates, TouchpadCustomGesture, TouchpadGestureContext, TouchpadGestureSettings sections with file path, namespace, purpose, key API, defaults. - GestureRecognizer notes the three-tier breakdown, the long-press recent-stillness metric, LongPress/RadialZones path-clear interaction, and per-slot fan-out semantics. - ShapeRecognizer documents the matched[] tracking + LUT-based ComputeLowerBound + bidirectional CloudMatch (port of the canonical qdollar.js reference). - AngularMarginRecognizer covers the circular-variance gate, closed-path detection, and direction-agnostic matching. - Default values for TouchpadGestureSettings cross-checked against the source (SwipeDistanceThreshold 0.15 not 0.12; SwipeTimeWindowMs 500 not 350; RadialCenterDeadzone 0.30 not 0.10; LongPressTimeWindowMs 500 not 600; PinchThreshold 0.25 not 0.15). Architecture-Overview: - Add Precision Touchpad Reader as its own background-thread section alongside RawInputListener / DSU / hooks / web server. - Note RawInput mouse path skips MOUSE_MOVE_ABSOLUTE events and doesn't surface RI_MOUSE_HWHEEL. - Renumber DSU / Input Hook / Web Controller thread headings to accommodate the new PTP reader entry.

    @hifihedgehog hifihedgehog committed May 26, 2026
    c961d95
  • Document the PTP reader: tip-switch, frame assembly, slot stability Adds a full PrecisionTouchpadReader section to Engine-Library with the four spec-mandatory behaviors (tip-switch usage 0x42, multi-report frame assembly via contact-count, HID-contact-id-stable slot assignment, staleness clear), per-device state fields, and the public API. The four behaviors are what made 3- to 5-finger taps reliable on PTP hardware. Also: - Engine-Library RawInputListener: note the MOUSE_MOVE_ABSOLUTE skip. - Architecture-Overview: extend PrecisionTouchpadReader.cs line. - Touchpad: add a PTP-reader development subsection that summarizes the four behaviors and links to the Engine-Library field reference. Drop a pseudo-period semicolon in the recorder paragraph. - Input-Pipeline Step 2: show both newState paths (PTP via _ptpReader.ReadInto, SDL via ud.Device.GetCurrentState). The prior text only showed the SDL path.

    @hifihedgehog hifihedgehog committed May 26, 2026
    bc6cb3a
  • Touchpad: Algorithms and credits section with + GestureSign BSD-3 attribution The page already cited each recognizer's source paper in the body but didn't surface the copyright + license posture. Added a new 'Algorithms and credits' section above 'See also' with: - paper citation (Vatavu / Anthony / Wobbrock 2018) and the canonical JS reference link, naming the four copyright holders - GestureSign's PointPatternAnalyzer attribution - Both flagged BSD 3-Clause Sibling-commit on the PadForge repo adds the same attribution to README + About page + source-file headers.

    @hifihedgehog hifihedgehog committed May 26, 2026
    b35047e
  • Lighting: lead tagline harmonized to fifteen modes (matches README) The page tagline said 'thirteen modes plus a per-press overlay,' counting the dropdown entries (twelve modes + Off) as the headline total and undercounting the three Input Reactive overlay variants as a single 'overlay.' README and padforge.org now say fifteen modes (twelve active base + three overlay), which is the meaningful user-selectable count. Aligned the lead to that framing. The 'Thirteen entries' line in the dropdown section stays as-is - that one is correct as dropdown cardinality (12 modes + Off) and explains the picker's actual content.

    @hifihedgehog hifihedgehog committed May 26, 2026
    b6223a1
  • Touchpad: drop CircleCCW jargon, write it like a human The prior iteration introduced 'CircleCCW' in user-facing docs, which reads as an internal descriptor name leaking into prose. The frontend shows the two circle bindings as 'Circle (Clockwise)' and 'Circle (Counter-Clockwise)' - users never see 'CircleCCW' on screen. The docs now phrase it the same way: five shapes, with Circle binding clockwise and counter-clockwise separately.

    @hifihedgehog hifihedgehog committed May 26, 2026
    b93797f
  • Touchpad: catalog claim is 6 in-box shapes, not 5 Tier 3 description said 'Five built-in shapes' and omitted CircleCCW, but InBoxShapeTemplates registers six entries: Circle, CircleCCW, Square, Triangle, Z, Checkmark. CW and CCW circles are bindable independently so a clockwise loop can fire a different mapping from a counter-clockwise one. Updated the count and the list, added one clarifying sentence about the CW/CCW split since users wouldn't otherwise notice the two-template-per-circle design.

    @hifihedgehog hifihedgehog committed May 26, 2026
    227054a
  • Architecture-Overview: add Touchpad/ to the Engine project layout The 'PadForge.Engine' file-tree section in Architecture-Overview listed Common/ and Data/ but skipped Touchpad/ entirely - even though v3.3's gesture pipeline lives there. Added the directory with one line per file (GestureRecognizer, ShapeRecognizer, ShapeTemplate, AngularMarginRecognizer, InBoxShapeTemplates, TouchpadCustomGesture, TouchpadGestureContext, TouchpadGestureSettings, TouchpadSettingsEntry). Also added PerDeviceSettingsEntry.cs to the Data/ section, which covers the v3.3 Copy / Paste / Copy From per-device clipboard payload that the prior commit (Engine-Library namespace table) referenced but the source-tree didn't surface here.

    @hifihedgehog hifihedgehog committed May 26, 2026
    3fe348f
  • Engine-Library: surface PadForge.Engine.Touchpad namespace in the topline table The namespace overview table didn't list PadForge.Engine.Touchpad, even though it carries the full gesture pipeline (GestureRecognizer, ShapeRecognizer, ShapeTemplate, AngularMarginRecognizer, InBoxShapeTemplates, TouchpadCustomGesture, TouchpadGestureContext, TouchpadGestureSettings). One-line addition that points future developers at the right files without sinking another N pages of prose on it. Also noted that PrecisionTouchpadReader lives under PadForge.Engine.Common - it was missing from the prior bullet.

    @hifihedgehog hifihedgehog committed May 26, 2026
    a1be436