Gyro.md: drop version qualifier from Engage-gate sentence
The Easy Aim + Aim Engage gates shipped in 3.2 and have not changed
since. Anchoring the sentence to a release number reads as if the
feature only exists in that release. The historical fact is fine in
release notes; in evergreen wiki prose it becomes stale wording.
Wiki landing + Gyro: include Motion Passthrough + per-device Copy/Paste in 3.3 highlights
Home.md What's new section gains two paragraphs in the 3.3 block:
- Motion Passthrough card story (slot-wide toggle, off by default, both
the virtual controller motion report and the DSU motion server gate
on it, calibration drift correction is unconditional).
- Per-device Copy/Paste/Copy From story (snapshots every assigned
device's tuning, InstanceGuid then ProductGuid match, unmatched
target devices left alone).
Gyro.md DSU client list: Citra replaced with Dolphin / Yuzu / Ryujinx.
Citra was discontinued March 2024; the active DSU clients on the wiki's
own Motion-Server page are Cemu, Dolphin, Yuzu, Ryujinx (and Lime3DS,
the Citra fork).
Doc loop: cover Motion Passthrough card + per-device Copy/Paste
Gyro.md: new section between intro and Calibration explaining the
slot-wide Motion Passthrough toggle. Off by default, gates whether the
Gyro tab's discretionary tuning reaches the virtual controller's motion
report and the DSU motion server. Calibration drift correction always
applies. Screenshot caption updated to mention the new card.
Button-and-Axis-Mappings.md: Copy/Paste/Copy From entries now describe
that the clipboard payload covers every assigned device's tuning, not
just the one selected at copy time. Matching is InstanceGuid first,
then ProductGuid as a fallback for the same model on a different
physical unit. Unmatched target devices are left alone.
Wiki: drop stale 'Last updated for PadForge 3.2.0' footers (22 pages)
Every page on the wiki carried a '*Last updated for PadForge X.Y.Z.*'
italicized footer hard-coded to 3.2.0. With 3.3.0 shipped, those
footers become a lie on every page that wasn't actually re-audited
for the new version — bumping them to 3.3.0 wholesale would just
swap one lie for another since most pages haven't been touched
since 3.2.0.
Removing the footer entirely: git history of each page is the
honest source of truth for currency. Wiki contributors who need
to know whether a section reflects the latest behavior can read
the page's commit log; no in-page label needed.
Drop math-tuple 'Per-(device, slot)' jargon — 'per pad per slot' reads cleaner
Pass 10/25: refreshed screenshots for 3.2 + image refs on every user-facing page
Screenshots
- Recaptured all 21 PNGs in images/ against a 6-slot setup (Xbox + Xbox + PlayStation + Extended + KBM + MIDI) so every controller-type screenshot reflects the live 3.2 UI.
- New pad-gyro.png covers the dedicated Gyro tab (Calibration, Sensitivity, Response Shaping, Engage, Easy Aim cards).
- pad-adaptive-triggers and pad-lighting captured on slot 1 where a DualSense source makes those tabs visible. The old captures were the Controller 3D view instead of the actual tab content -- the Tab(...) Click was being called before the tab strip had switched, and on PS slot 3 the AT/Lighting tabs are hidden when a DS4 (not DualSense) is the source.
capture.ps1 + convert-screenshots.ps1
- capture.ps1 now self-elevates. PadForge runs requireAdministrator; a non-elevated UIA reader returns zero descendants (UIPI), which silently made every Nav/Tab call fall through to a no-op.
- Dropdown captures target by AutomationId (DeadZoneShapeCombo, SensitivityXCombo, TriggerPresetCombo) instead of iterating every ComboBox looking for an item by name -- the old approach kept expanding the HMaestroProfileCombo and assigned-device combo by accident.
- Tab() ScrollIntoView before Click for wrapped tab strips.
- Capture for Gyro / Adaptive Triggers / Lighting on slot 1, gated on each tab being visible (Tab returns false if collapsed, the Cap call is skipped instead of capturing whatever's stale on screen).
- convert-screenshots.ps1: added pad-gyro / pad-impulse-triggers / pad-shift-layers to the name map.
Image refs on pages that previously had none
- Gyro.md: pad-gyro.png
- Installation.md: add-controller-popup.png (first thing you reach after install)
- DSU-Motion-Server.md: dashboard.png (the Motion Server card lives there)
- Troubleshooting.md: settings.png (where most troubleshooting starts)
- Input-Precision.md: pad-sticks.png (where the precision pipeline ends up visible)
- Shift-Layers.md: pad-mappings.png (shift layers live in the mappings tab strip)
- Impulse-Triggers.md: pad-forcefeedback.png as a stand-in (Impulse Triggers tab is only visible when an Xbox One+ pad is assigned, which the dev environment doesn't have; the Force Feedback tab shares the same layout pattern).
Wiki: add Gyro / Shift Layers / Impulse Triggers, expand Mappings + Macros for 3.2 features
New pages
- Gyro: dedicated tab covering calibration, sensitivity, response shaping, engage gates, reference frames, per-(device, slot) persistence, per-source GyroSensitivity multiplier.
- Shift Layers: per-slot mapping tables that activate while a button / chord / axis is engaged. Five activation modes, three activator kinds, per-layer color + emoji, Win11 flyout, last-engaged-wins resolution.
- Impulse Triggers: split out of Force Feedback since the app has it as its own Pad-page tab. Covers game-driven passthrough (Xbox + DualSense), Constant Trigger Force, Audio Bass Trigger Rumble.
Updated
- Home.md "New in 3.2" now covers the full 3.2.0 feature set: mapping engine rebuild, shift layers, gyro Steam Input parity, impulse triggers tab, macro custom expression, lighting additions, platform changes.
- Button-and-Axis-Mappings.md: per-VC scope, multi-source rows, six combine modes + custom formula, source kinds (Direct / Incremental / Invert On Hold), Bidirectional flag, direction badges, auto-mapping extend behavior.
- Macros.md: Custom Expression trigger mode (formula + variables + recipes), multi-device combos in triggers, per-entry axis options.
- Force-Feedback.md: trigger-motor sections moved to Impulse Triggers; cross-link added.