Deep audit: fix 30+ discrepancies, add Mermaid diagrams, correct DSU offsets
Deep source-code audit with 9 parallel agents reading full source files
against all 32 wiki pages. Verification pass with 4 additional agents.
Fixes:
- Engine-Library: remove stale XInputState struct, trim ObjectAspect/
EffectParameterFlags enums to match code, delete nonexistent
GetSlidersMask(), fix MidiRawState.Create() CC init description
- Settings-and-Serialization: fix *Neg range defaults (nullable, not "100"),
add MaxPads=16 note
- Services-Layer: fix Start() (RemoveAllDeviceNodes not called), fix Stop()
order (11 steps including web/audio), add Mermaid service diagram
- Input-Pipeline: fix "seven" → "eight" files, add Mermaid pipeline diagram
- vJoy-Deep-Dive: fix DisableDeviceNode (full removal, not keep-in-PnP),
add RestartDeviceNode DICS_PROPCHANGE vs full restart strategies
- ViewModels: add KeyboardMouseControllerIcon, fix SlotNumber (settable),
add KBM to OutputTypeIndex mapping
- Build-and-Publish: add missing Microsoft.Windows.Devices.Midi2 NuGet,
fix AssemblyVersion (App=2.1.0 vs Engine=2.0.0)
- Architecture-Overview: add CurveLut.cs, CurveEditor, fix MaxVJoySlots
note, add Mermaid architecture diagram
- SDL3-Integration: add VIDEO_ALLOW_SCREENSAVER hint, haptic skip note
- DSU-Protocol-Implementation: fix motion data offsets (were 4 bytes off)
- 2D-Overlay-System: fix schematic flash timer (400ms, not 170ms)
- Driver-Installation-Internals: fix IsMidiServicesInstalled description
- Devices: fix Instance Path label to HidHide Instance Path
- Virtual-Controllers: add Mermaid VC type hierarchy diagram
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update wiki for audio bass rumble, source dropdown, macro volume options, DS3 raw mode
User docs: Audio Bass Rumble section in Force-Feedback, source input dropdown
in Button-and-Axis-Mappings, InvertAxis/ShowVolumeOsd in Macros, DS3/DsHidMini
raw mode in Devices, audio rumble troubleshooting.
Dev docs: AudioBassDetector in Architecture-Overview/Engine-Library, Step 2
audio combination in Input-Pipeline, detector lifecycle in Services-Layer,
PadSetting audio properties in Settings-and-Serialization, PadViewModel/
MappingItem updates in ViewModels, PadPage UI changes in XAML-Views,
NAudio.Wasapi in Build-and-Publish.
Retake all 24 screenshots.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace -- with em dashes (—) in prose text across wiki pages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update wiki: combo triggers, Always mode, mouse actions, retake all screenshots
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sync wiki with v2-dev: KBM, MIDI switcher, sensitivity curves, dead zones, screenshots
- 23 wiki pages updated (+823 lines) covering KBM virtual controller, MIDI type switcher,
sensitivity curves, dead zone shapes, 3-tier polling timer, auto-idle engine, HidHide whitelist
- 21 screenshots retaken/added: all pages, all 4 slot types (Xbox360, KBM, vJoy, MIDI),
MIDI piano keys, KBM keyboard+mouse preview, vJoy config bar + schematic
- New screenshots: pad-kbm-preview, pad-midi-configbar, pad-vjoy-configbar, pad-vjoy-schematic, settings-hidhide
- Strict content boundary enforcement: zero developer jargon in user guide pages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update wiki: trigger precision, uninstall guards, decimal precision, screenshots
- Input-Precision: Fix trigger resolution from byte to ushort (16-bit internally)
- Driver-Management: Add MIDI uninstall steps, HidHide/MIDI uninstall guard notes
- Settings: Add auto-save description
- Virtual-Controllers: Fix trigger types, add MIDI auto-mapping section
- Stick-Dead-Zones: Add decimal precision, digit values, rectangular preview
- Trigger-Dead-Zones: Add setting values section with precision details
- Retake stick and trigger screenshots showing new digit value fields
- Developer docs: updated by audit agents
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace double dashes with em dashes in all wiki pages
Enforce content boundary: move dev details from user guide to dev reference
- Web-Controller.md: remove Technical Details section (HTTP routes, WebSocket
protocol, image cache, WebControllerDevice class, frontend assets)
- 3D-and-2D-Visualization.md: remove HelixToolkit implementation note
- Macros.md: remove WH_KEYBOARD_LL/WH_MOUSE_LL hook details
- Devices.md: remove Windows hook API references
- Services-Layer.md: add HTTP routes, WebSocket protocol, MaxClients,
WebControllerDevice properties, frontend assets to WebControllerServer section
- 3D-Model-System.md: update mouse controls (left=rotate, right=pan),
add left-drag fields, update event handler table
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update wiki for Web Controller, Force Raw Mode, stick calibration, and retake all screenshots
- Add Web Controller page: getting started, layouts, touch controls, connection, rumble, technical details
- Add Home.md entry for Web Controller
- Update Devices: device detail pane (GUID/instance path marquee), Force Raw Joystick Mode, stick calibration
- Update Stick Dead Zones: center offset calibration, max range per axis
- Update Architecture Overview: WebControllerServer service, Web Controller Server Thread, WebAssets directory
- Update Services Layer: WebControllerServer section, update service count to 7
- Update Build and Publish: WebAssets directory in project structure
- Update Troubleshooting: buttons map to wrong outputs (force raw mode solution)
- Update 3D Model System and 3D/2D Visualization for touch gesture details
- Retake all 12 screenshots with latest UI
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document input hiding: HidHide management and low-level hooks
- Devices.md: Add Input Hiding section (HidHide, hooks, auto-enable, master switch)
- Settings.md: Add "Hide Devices from Games" master switch subsection
- Driver-Management.md: Add built-in device management subsection under HidHide
- Architecture-Overview.md: Add HidHideController.cs, InputHookManager.cs, 5th thread, thread safety
- Services-Layer.md: Add device hiding lifecycle, DeviceHidingStateChanged, auto-enable defaults
- Settings-and-Serialization.md: Add HidHideEnabled, ConsumeInputEnabled, EnableInputHiding
- Driver-Installation-Internals.md: Add HidHideController IOCTL API section
- Engine-Library.md: Add InputHookManager class documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix hallucinations and inaccuracies across 15 wiki pages
Audited all 31 wiki pages against source code. Key corrections:
Profiles.md: Remove fabricated "Activate" button, add actual "New"/"Load"
buttons, fix executable input (Browse dialog, not typed text), fix
double-click behavior (loads, not edits)
Button-and-Axis-Mappings.md: Fix column names (Target->Output,
Modifiers->Options), add missing Value column, fix modifier labels
(I/H -> Inv/Half), fix Clear->Clear All, fix Map All description
Macros.md: Fix button name (Add Macro->Add), remove fabricated
up/down reorder arrows
Controller-Slots.md: Remove claim of no per-type cap, fix type
switching (Dashboard only, not config page), add Dashboard drag reorder
Stick-Dead-Zones.md: Clarify Linear is shared per stick, fix preview
to show single output dot (not raw+output)
Trigger-Dead-Zones.md: Fix live bar description (single bar, not
separate raw/processed)
Developer pages: Fix service count (5->6), MaxPads references (8->16),
missing enum values (Once, None), wrong method name (LoadObj->LoadModel),
asset counts, line count estimates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add complete PadForge wiki documentation (31 pages)