Bulk v3 terminology sweep across remaining wiki pages (23 files)
Mechanical s/// pass on the names that don't depend on architectural
context: ViGEmBus -> HIDMaestro, ViGEmClient -> HIDMaestro SDK,
VJoy -> Extended (the C# enum value name appearing in narrative text),
'DirectInput (vJoy)' -> 'Extended (HIDMaestro)', 'Xbox 360 / DualShock 4'
(slot type pair) -> 'Microsoft / PlayStation', etc.
Pages already hand-rewritten upstream were left alone (Home,
Installation, Driver-Management, HIDMaestro-Deep-Dive). Virtual-Controllers
got the same pass since it's a central reference.
Caveat: many of the deeper architecture pages (Driver-Installation-
Internals, Input-Pipeline, ViewModels, XAML-Views, Engine-Library, etc.)
still describe v2-era *implementation* (vjoy.sys SetupAPI device-node
creation, ViGEm.Client P/Invoke surface, etc.). The TERMINOLOGY now
matches v3 but the IMPLEMENTATION DETAILS in those pages are still v2 and
need a follow-up content pass to reflect the HIDMaestro SDK surface,
the OpenXInput shim, the HM thread-pool lifecycle, the bubble-up
cascade, etc. See HIDMaestro-Deep-Dive.md for the v3-correct version of
that material.
751c904
Reframe HIDMaestro as the required runtime, not a parallel optional driver
User feedback: HIDMaestro is not an optional install in the traditional
sense. PadForge uses HIDMaestro to dynamically instantiate virtual HID
devices based on the controller 'shape' you mimic (Xbox Series,
DualSense, Logitech wheel, etc.). It's the runtime engine, not a
checkbox parallel to HidHide / MIDI Services.
- Installation.md: dedicated 'HIDMaestro: the runtime PadForge ships with'
section explaining the dynamic per-slot device lifecycle. The Optional
add-ons section is now strictly HidHide + MIDI Services + OpenXInput
(the bundled shim).
- Driver-Management.md: replaces the flat 4-driver overview table with a
Required-vs-Optional table that calls out HIDMaestro as required and
bundled, OpenXInput as bundled-no-setting, and only HidHide and MIDI
Services as user-installable add-ons.
6844dd0
v3 wiki refresh: drop vJoy-Deep-Dive, add HIDMaestro-Deep-Dive, refresh images, rewrite Home
- Home.md: rewrite for v3 — Microsoft / PlayStation / Extended / MIDI /
KB+M categories, HIDMaestro replaces ViGEmBus + vJoy, OpenXInput shim
filters PadForge's own slots from its own XInput view, HM-lifecycle
thread-pool model + bubble-up cascade. Adds 'Powered by HIDMaestro'
badge with light/dark-mode logo swap via <picture>.
- HIDMaestro-Deep-Dive.md: new analogous page replacing vJoy-Deep-Dive
(deleted). Documents the HM SDK surface PadForge talks to (HMContext /
HMProfile / HMController), the OpenXInput filter, and the three Step 5
invariants (lifecycle off polling thread, inactivity destroy timeout,
bubble-up cascade). Explicitly enumerates the v2 vJoy bugs that no
longer apply.
- Image refresh from 2560x1600 build, including PlayStation / Extended /
MIDI / KBM slot type variants. Drops pad-vjoy-* screenshots (replaced
by pad-extended-configbar + pad-playstation-configbar).
- Adds the HIDMaestro logo (light + dark variants) and convert-screenshots.ps1
helper that renames + JPGs into PadForge/screenshots and padforge.org/assets.
3b844dd
capture.ps1: refresh for v3 — fix OutputDir, slot-type-specific captures, dashboard-card fallback, ViewModeToggle UIA hook
986fcd2
Sweep em-dash pseudo-colons across developer reference pages
01a5556
Rewrite Installation and Troubleshooting pages
a8dd9a2
Document profile shortcuts, switch flyout, and toggle window
User docs:
- Profiles.md: Controller Shortcuts section (modes, recording, axis
direction, cross-device combos), Switch Notification flyout section,
new tips
- Home.md: Updated Profiles description
Developer docs:
- Services-Layer.md: ToggleMainWindow, overlay callbacks, shortcut
recording
- Input-Pipeline.md: Global macro evaluation, HandleGlobalMacroAction,
TriggerButtonEntry, PendingToggleWindow
- Settings-and-Serialization.md: GlobalMacroData, TriggerButtonEntry,
AxisTriggerDirection, SwitchProfileMode.ToggleWindow
- ViewModels.md: ProfileShortcutViewModel
- XAML-Views.md: ProfileSwitchOverlay, Controller Shortcuts card
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
632b7ac
Standardize "dead zone" spelling to "deadzone" per Microsoft convention
Rename Stick-Dead-Zones.md → Stick-Deadzones.md and
Trigger-Dead-Zones.md → Trigger-Deadzones.md. Update all wiki content
and internal links to use one-word "deadzone" spelling.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
c89302d
Restore clean web controller screenshots
60c1bb4
Replace text logo with text-less icon on Home page
3f1bbdb
Refresh all screenshots with correct dropdown captures
4c64dac
Refresh all screenshots with correct vJoy Custom preset
c81722c
Fix all wiki image references from .jpg to .png
94dcc11
Remove old JPG screenshots (replaced by PNGs)
b2c4d01
Wiki sync: per-mapping dead zone, BLE HidHide, async enumeration, UI polish
16 pages updated across 7 parallel agents:
- Button-and-Axis-Mappings: source dropdown raw buttons, clear resets DZ
- Input-Pipeline: async Raw Input, MapToButtonPressed params, half-axis math
- Settings-and-Serialization: MappingDeadZones dict, DeviceObjects serialized
- Engine-Library: raw button count, DeviceObjects, FindInstanceIdsByVidPid BLE
- Dashboard: TypeSwitchButton, driver gating, red stopped indicators, drag fix
- Home: feature highlights updated
- XAML-Views: branding bar, SyncBarBackgrounds, theme-aware brushes
- Architecture-Overview: branding bar, async enumeration, stable 1000 Hz
- Services-Layer: async enumeration, offline dropdowns, popup dismiss
- Driver-Installation-Internals: removed methods, merge-based cache
- Controller-Slots, ViewModels, Force-Feedback, Troubleshooting,
SDL3-Integration, 3D-and-2D-Visualization: targeted updates
- All 25 screenshots refreshed
b273fdf
Wiki sync: per-mapping dead zone, logo, screenshots refresh
- Button-and-Axis-Mappings: new Axis-to-Button Dead Zone section with
slider/percentage UI, half-axis guide for centered joystick axes,
troubleshooting entries, updated mapping grid table
- Input-Pipeline: updated MapToButtonPressed signatures with deadZonePercent
and globalThresholdPercent params, configurable threshold table, half-axis
threshold note, TryParseIntStatic helper
- Settings-and-Serialization: MappingDeadZones dictionary, XML example,
checksum, JSON key, CopyFrom deep copy
- Engine-Library: MappingDeadZoneEntries property, dictionary methods,
DeviceObjects no longer XmlIgnore
- Home: updated release callout and Button-and-Axis-Mappings description
- All 24 screenshots refreshed with new title bar icon and UI changes
- Added logo.png
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4325bf1
Wiki sync for v2.2.1: BLE HidHide, async Raw Input, dead code cleanup
- Driver-Installation-Internals: Remove deleted AddToBlacklist/RemoveFromBlacklist,
add VID/PID format matching section (USB + BLE), update FindInstanceIdsByVidPid desc
- Input-Pipeline: Document async Raw Input enumeration (Task.Run background thread)
- Engine-Library: Remove deleted GameFileName property and section
- Settings-and-Serialization: Remove all GameFileName references (5 locations)
53eb97b
Web controller max clients 10 → 16
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1c527e5
Reconvert ALL 24 wiki JPGs from latest PNG captures
All wiki JPGs were stale — PNGs were updated by the latest capture run
but JPGs were never reconverted. Force feedback now shows audio rumble.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
882dae3
Fix em dash spacing: space-emdash-nospace → space-emdash-space
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
c171ba7
Fix remaining prose -- to em dashes in Home.md and 3D-and-2D-Visualization.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
cf3cb24
Wave 5: Visual overhaul, second polish, cross-page consistency, TOCs, diagrams
Home.md: Hero section with centered about.jpg, "New in this release"
callout, 6 themed sub-sections, Unicode symbols, verb-led descriptions.
Visual: 3 unused dropdown screenshots added to Sticks/Triggers pages.
TOCs added to 5 long dev docs. 3 new Mermaid diagrams (save/load flow,
class relationships, device discovery).
Cross-page consistency (user + dev): Bidirectional Related Pages across
all 31 pages (94 dev cross-links, 60+ user cross-links). Feature naming
standardized ("Force Raw Joystick Mode", "DualShock 4", "DirectInput
(vJoy)"). Setting names matched to UI labels. 9 screenshot alt texts
made descriptive. Dev doc links removed from user pages.
Second polish (all pages): 200+ edits tightening prose, removing AI
voice ("robust", "This ensures", "you can"), standardizing See Also
sections, cutting filler.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8d7d249
Final accuracy fixes from last 5 agents
Home.md: triggers "up to 4" → "up to 8"
Trigger-Dead-Zones: custom DI trigger range "3–4" → "3–8"
Macros: Axis Set range "0 to 65535" → "0 to 32767" (AxisValue is short)
vJoy-Deep-Dive: clarified 32-bit field width vs 15-bit value resolution,
added stick/trigger axis budget table
Settings-and-Serialization: 10 fixes — CapType value, InputDeviceType
constants, group counts, enum member names, XML attribute types
XAML-Views: 9 fixes — OpenPaneLength, IsSettingsVisible, sidebar order,
controller insertion point, line count, flash timer, margins
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1a63963
Numeric accuracy sweep: 18 agents verified every number against source code
Fixes found by accuracy agents:
- Virtual-Controllers: Xbox/DS4 max instances 4→16 (3 locations), 5 Gamepad
button bit values corrected (A=0x1000, B=0x2000, X=0x4000, Y=0x8000,
GUIDE=0x0400)
- Controller-Slots: per-type limit reasons now explain XInput 4-slot
visibility vs ViGEm 16-slot creation, SDL/DirectInput see all 16
- Input-Pipeline: VJoyRawState axes "up to 16" → "up to 8"
- 3D-and-2D-Visualization + Button-and-Axis-Mappings: triggers "up to 4"
→ "up to 8" (MaxAxes=8, sticks consume 2 each)
- Dashboard: Xbox/DS4 per-type limits 4→16
- Build-and-Publish: removed phantom LICENSE.txt from publish output
- SDL3-Integration: added missing padding fields to SDL_HapticCondition
and SDL_HapticRamp structs
- ViewModels: DeadZoneShape.ScaledRadial=2 not 0, tab order corrected,
ViewModelBase code snippet fixed
- Engine-Library: mouse button order L,R,M → L,M,R
- Driver-Installation-Internals: removed phantom EnsureWhitelisted,
added 4 missing HidHide API methods
- 2D-Overlay: schematic line count 795→794
- 3D-Model: torus offset 0.4→0.8mm
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
338ef96
ViewModels.md final polish: 194 edits, en dash ranges, filler cut
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
123eb4d
Absolute final: ViewModels.md fixes from Engine-Library straggler
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
02856bd
Final: ViewModels.md range fixes from Input-Pipeline straggler
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
991a573
Last straggler polish: ViewModels.md en dash ranges
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5855fde
Final straggler: ViewModels.md dash fixes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
19fc691