Skip to content

History / Installation

Revisions

  • Wiki: scrub pseudo-colon em-dashes across user + dev pages

    @hifihedgehog hifihedgehog committed May 26, 2026
  • Wiki: align top-line driver claims with the no-uninstall-HIDMaestro rule Three places implied HIDMaestro could be uninstalled like the other two drivers; each contradicted Driver-Installation-Internals.md:178 (and the project memory rule "HIDMaestro is not designed to be removed like an ordinary user-mode driver"). - Driver-Management.md tagline said "Install and uninstall every one from Settings." Now: "HIDMaestro auto-installs on first launch and has no uninstall path. Install or uninstall the optional two from Settings." - Driver-Management.md admin-rights section said "Driver install, driver uninstall, and HidHide whitelist edits all need administrator." The HIDMaestro "Uninstall" subsection further down already said there's no uninstall path, so the top-of-section line was the wrong one. Replaced with the three explicit ops (HM registration first- launch, HidHide install/uninstall, MIDI Services install/uninstall). - Installation.md UAC-section had the same "HIDMaestro driver install/uninstall" phrasing. Same fix applied. No code or rule change; just bringing the user-facing pages into line with what the in-app driver-cards page actually does (Settings shows HIDMaestro as status-only — no Install or Uninstall button).

    @hifihedgehog hifihedgehog committed May 26, 2026
  • 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.

    @hifihedgehog hifihedgehog committed May 25, 2026
  • Pass 57: Installation drops 'click Install next to HIDMaestro' instruction (driver auto-installs via HMContext.InstallDriver() when the engine starts; Settings shows status only)

    @hifihedgehog hifihedgehog committed May 20, 2026
  • Wiki Pass 3 user-facing audit Installation: OpenXInput now embedded in single-file EXE (drop the "and devobj.dll" — devobj is NOT bundled, per the architectural rule that ships only xinput1_4.dll and lets system32 resolve devobj unaided). Replace the obsolete Accept/Decline UAC table — PadForge declares requireAdministrator now, so the non-elevated branch is gone. Force-Feedback: fix "dualSense" → "DualSense" casing typo in the Related pages list.

    @hifihedgehog hifihedgehog committed May 20, 2026
  • 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).

    @hifihedgehog hifihedgehog committed May 20, 2026
  • 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

    @hifihedgehog hifihedgehog committed May 20, 2026
  • Wiki rewrite: simple-English voice across all user-facing pages Rewrites 18 user-facing pages and adds hooks to 7 dev-deep-dive pages. Each user-facing page now opens with H1 then a one-sentence hook, strips banned vocabulary, replaces em-dash pseudo-colons with periods, and ends with a version marker. User-facing rewrites - Installation, Dashboard, Controller-Slots, Button-and-Axis-Mappings - Stick-Deadzones, Trigger-Deadzones, Force-Feedback, Adaptive-Triggers, Lighting - Macros, Profiles, Devices, DSU-Motion-Server, Web-Controller - Settings, Driver-Management, Input-Precision, Troubleshooting - 3D-and-2D-Visualization New 3.2 content woven into Force-Feedback (Impulse Triggers, Audio Bass Trigger Rumble, Constant Trigger Force) using actual in-app labels from Strings.resx. Profiles documents the new Toggle Virtual Controllers Disabled shortcut mode. Settings notes the stable-across-language-switch fix. DSU Motion Server covers the Gyro Aim Engage picker subtitle. Dev-deep-dive hooks added - Input-Pipeline, Settings-and-Serialization, ViewModels, XAML-Views, Engine-Library

    @hifihedgehog hifihedgehog committed May 20, 2026
  • Deep v3 resync: vJoy purge, Microsoft→Xbox terminology, current features Sweep residual v2 vJoy / ViGEmBus content out of user-facing pages and replace stale dev-page class names with the v3 unified HIDMaestro pipeline. Restore correct family-name terminology (Xbox / PlayStation / Extended, not Microsoft / Sony — those enum identifiers exist purely for v2 PadForge.xml back-compat per the in-source enum comment). User-facing pages (Home, Dashboard, Controller-Slots, Devices, Settings, Driver-Management, Troubleshooting, Force-Feedback, Web-Controller, 3D-and-2D-Visualization, 2D-Overlay-System, Installation, Stick-Deadzones, Trigger-Deadzones, Input-Precision): - vJoy slot type, "vJoy driver limit", and vJoy install steps removed - Troubleshooting: "vJoy Phantom Controllers" section deleted (v2 N²-bug, doesn't exist in HIDMaestro), other vJoy sections rewritten for HM - Force-Feedback: HID PID 1.0 framing for Extended; new Sony Report 0x01 rumble passthrough section - 3D-and-2D-Visualization: PlayStation touchpad preview (live finger spheres) and click-to-map TouchpadClick documented - 2D-Overlay-System: touchpad highlight visual spec (sampled colors) - Web-Controller: DS4 layout button-11 collapse for TouchpadClick Dev pages (Architecture-Overview, Engine-Library, Build-and-Publish, HIDMaestro-Deep-Dive, Input-Pipeline, SDL3-Integration, Services-Layer, Settings-and-Serialization, Driver-Installation-Internals, ViewModels, XAML-Views, Virtual-Controllers, Button-and-Axis-Mappings): - Stale Xbox360VirtualController / DS4VirtualController / ExtendedVirtualController / VJoyRawState references replaced with the v3 unified HMaestroVirtualController + ExtendedRawState - Step 5 prose updated to HMContext.SubmitState / SubmitRawReport with Sony Report 0x01 passthrough - HIDMaestro-Deep-Dive: HM 1.1.x → 1.2.0 - Services-Layer: false claim that Extended slots reset to "Microsoft (Xbox 360) gamepad preset" replaced with the actual behavior (ProfileId = GetDefaultProfileId(type), Custom "PadForge Game Controller" for Extended) - Three broken [[vJoy Deep Dive]] links retargeted to [[HIDMaestro Deep Dive]] - Virtual-Controllers gets a top-of-page editor's note flagging it for a full hand-rewrite (the deep sections still describe deleted v2 classes) Microsoft references kept where they are real: NuGet package Microsoft.Windows.Devices.Midi2, registry paths under SOFTWARE\Microsoft\, ".NET runtime download from Microsoft", literal VirtualControllerType.Microsoft enum-value citations, MaxXbox360Slots constant name (preserved from v2), [XmlEnum("Sony")] attribute string, OpenXInput Microsoft-trademark disclaimer.

    @hifihedgehog hifihedgehog committed Apr 27, 2026
  • 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.

    @hifihedgehog hifihedgehog committed Apr 26, 2026
  • Rewrite Installation and Troubleshooting pages

    @hifihedgehog hifihedgehog committed Apr 18, 2026
  • 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>

    @hifihedgehog hifihedgehog committed Mar 19, 2026
  • Professional polish: proper typography, concise writing, 33 agents Replace all 590+ double-hyphen (--) instances with proper em dashes (—) and en dashes (–) for numeric ranges. Remaining -- only inside code blocks. Rewrite every page for professional conciseness: - Simple English, short sentences, active voice - Prose converted to tables and bullet lists - Filler words and AI-tell phrases eliminated - Parallel structure in descriptions - Every section scannable in seconds Net result: 632 fewer lines across 32 files while preserving all detail. Verified: 0 broken cross-references, all 9 Mermaid diagrams valid, all 21 image references valid, README fully synchronized. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 19, 2026
  • Comprehensive wiki rewrite: 22 agents, 2M+ tokens, all 31 pages improved Every wiki page deeply rewritten by dedicated agents that read full source files (not commit history). Total: ~2 million input tokens across 22 agents. User guide pages (17): - Home: all 32 descriptions rewritten with specific subsection details - Force-Feedback: motor physics, pipeline flow, haptic/condition/audio sections - Macros: 12 action type subsections, 6 practical recipes, fire mode guide - Devices: card layout, raw input viz, GUID persistence, 7 troubleshooting items - Stick-Dead-Zones: per-shape subsections, anti-DZ tuning, 5 genre recommendations - Trigger-Dead-Zones: floor/ceiling examples, 4 genre recommendations - Controller-Slots: "What Is a Slot?", type decision table, limits, reordering - Dashboard: engine states, VC card anatomy, power icon color table - Settings: per-setting guidance, driver comparison table, auto-save behavior - Button-and-Axis-Mappings: source dropdown, descriptor names, mapping tips - Profiles: pipe-separated exe format, 4 practical examples - DSU-Motion-Server: emulator table, sensor requirements, setup guides - Web-Controller: step-by-step setup, network requirements, latency expectations - Installation: Quick Start, auto-elevation, first-launch walkthrough - Driver-Management: graceful degradation, compatibility matrix, troubleshooting - Troubleshooting: 10 new scenarios, Quick Reference 18→33 entries - 3D-and-2D-Visualization: view selection table, MIDI preview, touch tips Developer reference pages (14): - Architecture-Overview: verified project layout, Key Design Decisions, threading - Input-Pipeline: 1538 lines, 3-thread Mermaid, dead zone algorithms, thread safety - Services-Layer: rewritten from scratch, 25+ method table, 5 interaction flows - ViewModels: 1559 lines, all 14 ViewModel classes, 70+ PadSetting properties - Engine-Library: 1811 lines, 31 types, full SDL3 P/Invoke reference - Settings-and-Serialization: 73 CopyablePropertyNames, save/load flowcharts - XAML-Views: layout trees, binding tables, 11 styles, UI Automation IDs - Virtual-Controllers: Mermaid type hierarchy, per-VC axis/button tables - SDL3-Integration: 1133 lines, enumeration flow, rumble, haptic, custom mappings - Build-and-Publish: all build modes, CI/CD, versioning, local NuGet - vJoy-Deep-Dive: HID descriptors, FFB, device lifecycle, restart strategies - Driver-Installation-Internals: Mermaid flowcharts, SetupAPI P/Invoke, registry - DSU-Protocol-Implementation: corrected byte offsets, sequence diagrams, CRC32 - 2D-Overlay-System: MIDI preview, verified file counts, flash timer corrected - 3D-Model-System: material system, coordinate transforms, touch gestures Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 19, 2026
  • 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>

    @hifihedgehog hifihedgehog committed Mar 13, 2026
  • Update wiki: MIDI virtual controller type, .NET 10, retake all screenshots - Add MIDI output type documentation across all relevant pages - Update .NET 8 → .NET 10 references (Architecture, Build, Installation, Engine) - Add Windows MIDI Services to Driver Management and Settings - Add MIDI troubleshooting section - Update slot counts from "three types" to "four types" - Retake all 15 screenshots with current UI (wider sidebar) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 8, 2026
  • 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>

    @hifihedgehog hifihedgehog committed Mar 3, 2026
  • Add complete PadForge wiki documentation (31 pages)

    @hifihedgehog hifihedgehog committed Mar 3, 2026