Skip to content

History / Driver Management

Revisions

  • 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.

    @hifihedgehog hifihedgehog committed Jun 15, 2026
  • Wiki: scrub pseudo-colon em-dashes across user + dev pages

    @hifihedgehog hifihedgehog committed May 26, 2026
  • Driver-Management troubleshooting: drop the 'copy the whole release zip' advice The line told users 'If you only copied the EXE, copy the whole release zip' — wrong since the OpenXInput shim is bundled in the single-file EXE and extracts to %TEMP% on launch. PadForge ships as one EXE. Replaced with the actual troubleshooting paths: AV / cleaner wiping %TEMP%\.net\PadForge mid-session, and Steam's launch-time controller enumeration cache.

    @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
  • HM filter surfaces: Step 1 has no HM filter; the four real surfaces are SDL3 fork, OpenXInput fork, XboxImpulseHidWriter, HidHideController

    @hifihedgehog hifihedgehog committed May 21, 2026
  • Strip em-dash pseudo-colons and pseudo-period semicolons across wiki prose

    @hifihedgehog hifihedgehog committed May 21, 2026
  • Driver-Management: list the right three HM filter surfaces The OpenXInput section closed with 'three filter surfaces (SDL3 fork, OpenXInput fork, SetDllDirectory preload)'. SetDllDirectory is a load-order mechanism (so PadForge's xinput1_4.dll wins over System32's), not a filter. The three actual filter surfaces, per HIDMaestro-Deep-Dive line 82: - OpenXInput fork (XInput API) - SDL3 fork (DirectInput + Raw Input + HIDAPI enumeration) - PnP-walk in InputManager.Step1.UpdateDevices (device-card view) Updated the sentence to name each surface accurately.

    @hifihedgehog hifihedgehog committed May 21, 2026
  • Wiki: 'auto-elevate' -> 'requireAdministrator' across 3 pages PadForge's app.manifest declares requireAdministrator. 'Auto-elevate' is v2 terminology from when PadForge ran unelevated and relaunched itself elevated mid-session via Verb=runas — that path is gone. Architecture-Overview: 'Entry point, auto-elevation' in the App.xaml file-tree comment is wrong; replaced with the actual entry-point responsibility (single-file OpenXInput SetDllDirectory). Driver-Management Common Issues 'UAC prompt on every launch' row: explain the manifest cause + that downstream installer spawns reuse the already-elevated session without re-prompting. Troubleshooting: same explanation in the main UAC troubleshooting step. Also fixed a critical accuracy bug in step 2 that said 'clicking No on UAC lets PadForge run without elevation' — Windows does NOT start a requireAdministrator app when the user declines. Quick Reference table row 'PadForge auto-elevates' likewise corrected to 'manifest declares requireAdministrator'.

    @hifihedgehog hifihedgehog committed May 21, 2026
  • Driver-Management: drop 'Approve UAC' from HidHide install/uninstall The HidHide and MIDI Services install/uninstall paths spawn external installers with Verb=runas. When the parent (PadForge) is already elevated, Windows passes elevation through without showing a second UAC prompt. Updated the HidHide Install / Uninstall steps to match reality.

    @hifihedgehog hifihedgehog committed May 21, 2026
  • Driver-Management: fix HIDMaestro Install steps (no button exists) + UAC cadence HIDMaestro section had a six-line 'Install steps' / 'Uninstall steps' recipe instructing readers to click Install / Uninstall on the Settings page and approve UAC. The Settings page's HIDMaestro card is status-only (no buttons). Install happens automatically on first engine start inside PadForge's already-elevated process; removal isn't supported in-app per memory rule hidmaestro-not-a-normal-driver-removal.md. Rewrote both sub-sections to match reality without recommending pnputil / Device Manager removal as user actions. Admin-rights subsection said 'Driver install and uninstall trigger one more UAC prompt of their own.' Not true: HIDMaestro install runs in-process; the HidHide / MIDI Services Install buttons spawn msiexec with Verb=runas, but a runas spawn from an already-elevated parent skips the prompt.

    @hifihedgehog hifihedgehog committed May 21, 2026
  • Pass 59: Driver-Management first-run text matches reality (HMContext.InstallDriver() runs on engine start, no Dashboard 'install card')

    @hifihedgehog hifihedgehog committed May 20, 2026
  • Driver-Management: OpenXInput is embedded in single-file EXE; devobj.dll deliberately not bundled

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

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

    @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
  • Inactivity timeout: clarify slot config is preserved (VC torn down only)

    @hifihedgehog hifihedgehog committed Apr 28, 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
  • Sweep em-dash pseudo-colons across developer reference pages

    @hifihedgehog hifihedgehog committed Apr 18, 2026
  • Fix all wiki image references from .jpg to .png

    @hifihedgehog hifihedgehog committed Mar 21, 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
  • Convert all wiki images from PNG to JPG, update all references Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 15, 2026
  • Update wiki: per-direction max range, volume limit, KBM badge, MIDI config, troubleshooting tips, HidHide whitelist Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 13, 2026
  • Add missing screenshot references to wiki pages - Controller-Slots: add-controller popup, MIDI config, vJoy config + schematic - 3D-and-2D-Visualization: KBM keyboard+mouse preview - Settings: HidHide whitelist, driver management sections - Web-Controller: landing page and gamepad controller screenshots - Home: About page screenshot - Driver-Management: use settings-drivers.png instead of generic settings.png Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 13, 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: 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>

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