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).
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.
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
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).
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.
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.
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.
Steering: 'act like a steering wheel' wording (#94)
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.
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).
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.
Wiki: scrub pseudo-colon em-dashes across user + dev pages
Home.md 3.3 section header: cover all four highlights, not just touchpad
After adding the Motion Passthrough and per-device Copy/Paste paragraphs
to the section last iteration, the heading still claimed only touchpad
work. Updated to reflect every 3.3 highlight the body now lists.
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).
Home: drop math-tuple notation from 3.3 callout
Add Touchpad wiki page; link from Home
3.3 added a real Touchpad tab with five cards (Stick / D-Pad
Output, Mouse Output, Gesture Detection, In-Box Gestures,
Custom Gestures) and a per-slot architecture — none of which
had a wiki page. New Touchpad.md documents every card's knobs,
the per-slot fan-out semantics, and the PTP-no-click caveat.
Home gets a 'Touchpad' row in the 'Tune the feel' table alongside
Gyro.
Home: rotate 'New in' to 'What's new' with a 3.3 subsection
Added the 3.3 highlights (Touchpad Mouse Output + Stick / D-Pad
Output cards, per-slot gesture engine fan-out, KBM keys, defaults-
off) above the existing 3.2 content. Demoted the 3.2 subsections
from h3 to h4 so they nest under the new '3.2' parent. Cleaned up
the 2026 Steam Controller line's broken past-tense qualifier.
HM filter surfaces: Step 1 has no HM filter; the four real surfaces are SDL3 fork, OpenXInput fork, XboxImpulseHidWriter, HidHideController
Home: Driver Installation Internals dev-nav row attributes HM correctly
The wiki nav row claimed Driver-Installation-Internals covers
'DriverInstaller class. HIDMaestro INF install. HidHide WiX
bootstrapper. Windows MIDI Services release query.' Putting
'HIDMaestro INF install' alongside the other DriverInstaller items
suggested DriverInstaller installs HM. It doesn't (see
Driver-Installation-Internals.md line 5). HM registers itself in
the engine via HMContext.InstallDriver().
Rewrote the row to drop the HM-INF-install claim from the
DriverInstaller bullet list and add a parenthetical note pointing
HM at the engine-side path.
Wiki: em-dash pseudo-colon -> period/colon
Home.md (Battery lightbar description) used em-dash to attach the
explanation of charge-level colors; replaced with a colon since the
em-dash here was a pseudo-colon, not a true parenthetical.
Settings.md (Inactivity Timeout description) used em-dash to attach
the consequence sentence; replaced with a period since the second
clause is a standalone elaboration.
Drop 'chip-based' / 'chip palette' jargon — 'drag-and-drop formula editor' or 'operator palette' reads cleaner
Home nav: 'Touchpad Overlay' display text instead of raw 'Dashboard#Touchpad-Overlay' URL fragment
Drop math-tuple 'Per-(device, slot)' jargon — 'per pad per slot' reads cleaner
Pass 33: Home nav table enriches Web Controller (16 phones, touchpad layout) and adds Touchpad Overlay row
Home: open the Map section by noting recognized gamepads auto-map on assign
Wiki: Pass 2 — dev-deep-dive accuracy + Home page voice match
Architecture-Overview: AssemblyInfo.cs → SharedVersion.cs; expanded
Data/ file list to include MappingSet/MappingSource/MappingRow/
ShiftActivator/MappingSetMigrator/DeviceTuning.
Input-Pipeline: drop preserveExtendedNodes parameter; rebuild field
table to match current InputService.
Virtual-Controllers: VendorId==0xBEEF check replaced with
DescriptorHasPidFfbBlock(descriptorHex) gate in three locations.
HIDMaestro-Deep-Dive: Microsoft.HIDMaestro.SDK → HIDMaestro.Core
(bundled at Resources/HIDMaestro/HIDMaestro.Core.dll); fix
context.CreateController(profile) call shape.
Services-Layer: drop preserveExtendedNodes from Stop(); remove the
"step 9" preserve-nodes branch.
Engine-Library: add TOUCHPAD = 0x0800 button flag row.
SDL3-Integration: SDL3 fork now filters HM virtuals at
SDL_GetJoysticks, so the engine no longer maintains
_filteredVigemInstanceIds. Updated Mermaid flowchart and renumbered
the connect-side step list.
Home: "New in 3.2" rewritten from bullet lists to story paragraphs to
match the website voice. Added Gyro / Impulse Triggers / Shift Layers
to the navigation tables.
Pass 9b/25: capture.ps1 now targets TriggerPresetCombo by AutomationId + adds Gyro and Impulse Triggers captures. Home.md nav table grows.
capture.ps1:
- Trigger sensitivity dropdown switched from item-probe (which kept hitting HMaestroProfileCombo / device dropdown by accident) to AutomationId "TriggerPresetCombo". All three dropdown captures now target by AutomationId.
- Added pad-impulse-triggers and pad-gyro captures on slot 1, gated on the tab being visible.
Home.md:
- "Map a button or axis" now links Button-and-Axis-Mappings and Shift Layers explicitly.
- "Tune the feel" includes Gyro and Impulse Triggers alongside the existing tuning tabs.
- "Power features" mentions Custom Expression triggers in the Macros row and the bulk virtual-controller toggle in the Profiles row.
Pass 5/25: VC abbreviation purge from user-facing prose
Replaced "VC" with "virtual controller" or "controller" in user-visible text on Home.md (Misc 1 -> Share bullet), Controller-Slots.md (yellow power-icon explanation, disabled-slot reorder note), Driver-Management.md (HIDMaestro stuck-on-initializing troubleshooting). "Xbox virtual gamepad" and "PlayStation virtual gamepad" labels in the Add-controller type table now say "virtual controller" to match the rest of the wiki.
Pass 2/25: italic hook consistency, Related pages normalization, em-dash sweep
- Italicized hook line on 12 user-facing pages that had plain hooks (Stick-Deadzones, Trigger-Deadzones, Force-Feedback, Adaptive-Triggers, Lighting, Devices, DSU-Motion-Server, Web-Controller, Settings, Driver-Management, Input-Precision, 3D-and-2D-Visualization) and Troubleshooting.
- Normalized Related-pages bullet formatting across 16 user-facing pages to one convention: '- [[Page]]: lowercase description.'
- Home.md: cut filler 'long list of smaller wins' from the 3.2 intro paragraph; replaced em-dash pseudo-colon with a period; converted em-dash pseudo-colon in Gyro motion bindings bullet.
- Controller-Slots.md: Open-a-slot tab list now reflects 3.2 reality (Gyro tab, Adaptive Triggers and Lighting on PS slots, Impulse Triggers on Xbox + PS). Related pages expanded to link the new pages.
- Devices.md and Impulse-Triggers.md: em-dash pseudo-colons converted to periods.
Pass 1/25: wiki link audit + empty-header table cleanup + 2026 Steam Controller mention
- All 29 reversed [[Display|Target]] gollum links fixed
- 1 broken anchor on Virtual-Controllers link to HIDMaestro Deep Dive resolved against actual heading slug
- Lighting.md image path corrected (lighting.png -> pad-lighting.png)
- 10 empty-header 2-col "| | |" label tables rewritten as prose paragraphs across Controller-Slots, Installation, Devices, Dashboard, Settings, Web-Controller
- Home.md "New in 3.2" now lists 2026 Steam Controller support via the bundled SDL3 fork