Skip to content

History / Button and Axis Mappings

Revisions

  • 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

    @hifihedgehog hifihedgehog committed Jun 19, 2026
  • Doc loop: cover Motion Passthrough card + per-device Copy/Paste Gyro.md: new section between intro and Calibration explaining the slot-wide Motion Passthrough toggle. Off by default, gates whether the Gyro tab's discretionary tuning reaches the virtual controller's motion report and the DSU motion server. Calibration drift correction always applies. Screenshot caption updated to mention the new card. Button-and-Axis-Mappings.md: Copy/Paste/Copy From entries now describe that the clipboard payload covers every assigned device's tuning, not just the one selected at copy time. Matching is InstanceGuid first, then ProductGuid as a fallback for the same model on a different physical unit. Unmatched target devices are left alone.

    @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
  • Wiki: eradicate remaining 'chip' jargon from formula-editor prose Button-and-Axis-Mappings.md: 'Chip palette' section heading and the 'drag a chip' body sentence were still using the WPF Material Design control name. Renamed to 'Operator palette' / 'Drag an operator'. Macros.md: 'chip-style picker' cross-reference replaced with the plain 'cross-device input picker' + 'operator palette' wording that matches the editor's actual user-facing terminology. Memory rule feedback_no_chip_jargon.md flags 'chip' as opaque to readers; this completes the sweep across the wiki.

    @hifihedgehog hifihedgehog committed May 21, 2026
  • Pass 11/25: trim 'actually' filler from Button-and-Axis-Mappings, Adaptive-Triggers, Macros

    @hifihedgehog hifihedgehog committed May 20, 2026
  • Pass 8/25: Related-pages first-word lowercase normalization + Stick-Deadzones 'Best for:' pseudo-colon sweep 41 Related-pages bullet first-words lowercased to match the established 'Page: lowercase description.' convention. Proper nouns (Xbox, DualSense, Sony, HIDMaestro, etc.) kept capitalized. One DualSense->dualSense miss caught and restored. Stick-Deadzones 'Best for:' colon-pseudo pattern dropped on all five deadzone-shape captions.

    @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: add Gyro / Shift Layers / Impulse Triggers, expand Mappings + Macros for 3.2 features New pages - Gyro: dedicated tab covering calibration, sensitivity, response shaping, engage gates, reference frames, per-(device, slot) persistence, per-source GyroSensitivity multiplier. - Shift Layers: per-slot mapping tables that activate while a button / chord / axis is engaged. Five activation modes, three activator kinds, per-layer color + emoji, Win11 flyout, last-engaged-wins resolution. - Impulse Triggers: split out of Force Feedback since the app has it as its own Pad-page tab. Covers game-driven passthrough (Xbox + DualSense), Constant Trigger Force, Audio Bass Trigger Rumble. Updated - Home.md "New in 3.2" now covers the full 3.2.0 feature set: mapping engine rebuild, shift layers, gyro Steam Input parity, impulse triggers tab, macro custom expression, lighting additions, platform changes. - Button-and-Axis-Mappings.md: per-VC scope, multi-source rows, six combine modes + custom formula, source kinds (Direct / Incremental / Invert On Hold), Bidirectional flag, direction badges, auto-mapping extend behavior. - Macros.md: Custom Expression trigger mode (formula + variables + recipes), multi-device combos in triggers, per-entry axis options. - Force-Feedback.md: trigger-motor sections moved to Impulse Triggers; cross-link added.

    @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
  • Lighting tab reset buttons + v3 terminology sweep Refreshes pad-lighting screenshot to capture the four new reset buttons (Lightbar Mode, LED Brightness, Player Pattern, Mute LED Mode) plus the rest of the slot-0 PadPage tabs and slot-type config bars against the post-deploy build. Wiki prose: drops residual v2 phrasing (ExtendedConfig.IsGamepadPreset, DualShock4 / Xbox 360 enum names, "Microsoft" / "Sony") and routes through the v3 OutputType / VirtualControllerType vocabulary instead.

    @hifihedgehog hifihedgehog committed May 4, 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
  • Fix mojibake throughout the wiki + rewrite Input-Precision Stage 5 for v3 Mojibake sweep: 1067 sequences across 17 .md files. Earlier passes had round-tripped UTF-8 punctuation through a CP1252 layer, baking the literal three-character mojibake into the files (em-dash → â + € + ", en-dash, right arrow, box-drawing chars, middle dot, multiplication sign, etc.). Restored to the proper Unicode codepoints: — – → ↔ ← │ ├ └ · ×. Input-Precision Stage 5 rewrite: the page still described 'Stage 5: vJoy Output (15-bit unsigned)' which doesn't exist in v3. v3 has a single HIDMaestro Output stage with three sub-cases: - Microsoft (Xbox 360): signed 16-bit sticks, 8-bit triggers - PlayStation (DS4): 8-bit sticks AND triggers (DS4 protocol) - Extended (HM custom HID): 16-bit unsigned sticks, 8-bit triggers by default, raisable to 16-bit per profile Verified against HIDMaestro's HidDescriptorBuilder.cs (AddStick default bits=16, AddTrigger default bits=8) and PadForge's HMaestroVirtualController.cs (SubmitGamepadState normalizes through float at the SDK boundary). Output Throughput section: dropped the vJoy single-IOCTL note, replaced with HIDMaestro single-call SubmitState description. Summary table axis-resolution rows now reflect per-VC-type wire bit depth. Stage 3 callout pointing at Stage 5. Pseudo-colon em-dash converted to period per the project style rule.

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

    @hifihedgehog hifihedgehog committed Apr 26, 2026
  • Sweep em-dash pseudo-colons across developer reference pages

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

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

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

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

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

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

    @hifihedgehog hifihedgehog committed Mar 19, 2026
  • Update wiki: add multilingual, Copy From, condition effects, directional FFB docs; retake all screenshots - Button-and-Axis-Mappings: Copy From Translation, Clipboard Metadata sections - Force-Feedback: Directional Haptic Forces, Condition Effects sections - Settings: Language / Multilingual Support section - Virtual-Controllers: condition effects, NumHapticAxes - Engine-Library: MappingTranslation, updated Vibration class, ConditionAxisData - SDL3-Integration: SDL_HapticCondition, SDL_HapticRamp, SDL_GetNumHapticAxes - Architecture-Overview: MappingTranslation.cs in project layout - ViewModels: culture/localization support in ViewModelBase - Settings-and-Serialization: cross-layout mapping translation - vJoy-Deep-Dive: condition effect struct details - All 24 screenshots retaken with current UI Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 16, 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 for input consumption safety, mouse input fixes, and recording - Devices.md: Updated auto-enable table (mice/keyboards now OFF), added Safety Warnings section for HidHide/Consume confirmation dialogs - Button-and-Axis-Mappings.md: Added mouse axis instant detection note - Troubleshooting.md: Added Mouse or Keyboard Input Issues section and quick reference entries Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 7, 2026
  • Replace double dashes with em dashes in all wiki pages

    @hifihedgehog hifihedgehog committed Mar 6, 2026
  • Comprehensive wiki update for v2.0.0-RC2 features Updated 17 pages covering all RC2 changes: - Web Controller: full technical docs (API routes, image cache, WebSocket protocol, MaxClients, frontend assets) - Dashboard/Settings: web controller configuration sections - Input Pipeline: center offset calibration in Step 3, consumed input merging in Step 2, vJoy presentation in Step 5 - Stick Dead Zones: calibration UI details, max range documentation - Virtual Controllers: vJoy presentation lifecycle, ordering fix, initializing indicator - vJoy Deep Dive: stale config leak fix, DLL namespace cache, config swap during reorder - Engine Library: WebControllerDevice, InputHookManager, PadSetting calibration fields, UserDevice hiding fields - ViewModels: web controller properties, StickConfigItem calibration, DeviceRowViewModel ForceRawMode - Settings/Serialization: web controller settings, stick calibration XML, input hiding XML - XAML Views: stick calibration UI, input hiding UI, web controller settings - SDL3 Integration: ForceRawMode documentation - 3D Visualization: touch gestures (pinch-to-zoom, two-finger pan) - Macros: consumed input behavior explanation - Button Mappings: calibration-aware preview, display consistency - Troubleshooting: force raw mode, web controller, stick drift entries - Architecture Overview: WebControllerDevice in engine Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 6, 2026
  • Note DirectInput custom controller limits across wiki Up to 8 axes (sticks and triggers combined), 128 buttons, and 4 POV hats in Controller-Slots, Button-and-Axis-Mappings, 3D-and-2D-Visualization, Stick-Dead-Zones, and Trigger-Dead-Zones. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 3, 2026
  • Emphasize DirectInput over vJoy in user-facing wiki pages Reframe custom controller descriptions to lead with "DirectInput" since most users think in terms of DirectInput joysticks/gamepads. Section headers changed from "vJoy Custom ..." to "Custom DirectInput ...". vJoy remains mentioned as the driver name where appropriate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    @hifihedgehog hifihedgehog committed Mar 3, 2026