Skip to content

Driver Management

hifihedgehog edited this page Apr 28, 2026 · 34 revisions

Driver Management

PadForge ships with the HIDMaestro runtime built in — that's the engine that creates every virtual controller you add to the Dashboard except Keyboard+Mouse. HIDMaestro is required, not optional. Two genuinely-optional drivers (HidHide and Windows MIDI Services) install separately from the Settings page if you need their features.

Driver management cards


What's required vs. optional

Component Status Purpose
HIDMaestro Required for any virtual controller other than Keyboard+Mouse. Installed once from Settings on first run. The runtime that dynamically instantiates virtual HID devices matching the controller "shape" you pick (Xbox Series, DualSense, Logitech wheel, etc.) for each slot. 225+ device profiles.
OpenXInput Bundled inside PadForge.exe. No install, no setting. Filters PadForge's own virtual controllers from its own XInput view so SDL doesn't loop them back as physical inputs.
Keyboard+Mouse Built in. No driver. Maps controller inputs to keyboard / mouse via Win32 SendInput.
HidHide Optional. Install when you see double input in games. Hides physical controllers from games so they only see the virtual ones.
Windows MIDI Services Optional. Install only if you need the MIDI virtual controller type. Virtual MIDI endpoints for sending notes / CC to DAWs and music software. Requires Windows 11 24H2+.

Coming from PadForge v2? ViGEmBus and vJoy are gone. HIDMaestro replaces both. On first v3 launch, PadForge detects them and offers to uninstall them via the legacy driver cleanup dialog. There is no v2-to-v3 path that keeps either.


Status indicators

Each driver card on the Settings page shows a colored dot:

Indicator Meaning
Green — "Installed" Driver ready. Version number shown below.
Red — "Not Installed" Driver must be installed before that output type works.

The Dashboard also shows a condensed driver status summary.


Behavior when drivers are missing

PadForge runs without errors regardless of which drivers are installed. Missing drivers only disable features that need them.

Missing Driver Effect
HIDMaestro Xbox, PlayStation, and Extended buttons dimmed in "Add Controller" popup. Keyboard+Mouse and (if installed) MIDI still work.
HidHide "Hide from games" toggle has no effect. Games may see both physical and virtual controllers.
MIDI Services MIDI button dimmed (or hidden on unsupported Windows versions). All other types work.

Auto-elevation (administrator privileges)

PadForge auto-requests elevation (UAC prompt) on startup because HIDMaestro INF install/uninstall and HidHide whitelist management both need administrator access.

  • Accept UAC: PadForge runs elevated; everything works normally.
  • Decline UAC: PadForge opens without elevation. Already-installed drivers continue to work, but any operation that touches driver state (install, uninstall, HidHide whitelist edit) is unavailable until you relaunch and accept the prompt.

Driver install / uninstall operations themselves trigger the standard Windows UAC dialog regardless of whether PadForge is already elevated.


HIDMaestro

A single user-mode UMDF2 (User-Mode Driver Framework 2) bus driver that publishes virtual HID controllers from user-mode. Each non-MIDI, non-Keyboard+Mouse virtual slot maps to one HIDMaestro device profile, which bundles a USB VID/PID, product/OEM strings, a HID report descriptor, and (where applicable) FFB PID descriptor pages.

The 225+ profiles cover:

  • Xbox 360 / Xbox One / Xbox Series / Elite / Adaptive
  • DualShock 3 / DualShock 4 / DualSense / DualSense Edge
  • Logitech G-series wheels (G29, G920, G923, G27, etc.)
  • Thrustmaster / Fanatec wheels and pedals
  • HOTAS sticks (Thrustmaster Warthog, Logitech X52, etc.)
  • Hori, 8BitDo, PowerA, third-party gamepads
  • A "Custom" profile that lets the Extended category build a HID descriptor from scratch (up to 8 axes, 128 buttons, 4 POV hats)

Install for:

  • Any Xbox, PlayStation, or Extended virtual controller
  • Force feedback through DirectInput (PID effects)
  • Custom HID descriptors for niche games or development work

Installing

  1. Open Settings > scroll to HIDMaestro > click Install > approve UAC.
  2. PadForge runs pnputil to register the HIDMaestro INF. Status dot turns green. No restart needed. Add Xbox / PlayStation / Extended slots immediately from the Dashboard.

Uninstalling

  1. Delete all Xbox, PlayStation, and Extended slots from the Dashboard first (Uninstall stays disabled while any exist).
  2. Open Settings > scroll to HIDMaestro > click Uninstall > approve UAC.

For deeper detail on what PadForge sends to HIDMaestro and how the lifecycle works, see HIDMaestro Deep Dive.


HidHide

Hides physical controllers from applications so games see only PadForge's virtual controllers. Solves the "double input" problem where every press registers twice because games detect both the real and virtual controller.

Install when experiencing:

  • Button presses registering twice
  • Menus scrolling at double speed
  • Jerky or doubled character movement
  • Games showing two controllers when only one is connected
  • Games auto-selecting the wrong controller

Even without symptoms, installing HidHide is recommended as prevention.

How PadForge uses HidHide

PadForge manages HidHide automatically. No separate Configuration Client needed.

Feature Details
Per-device hiding Toggle "Hide from games" on each device card (Devices page)
Automatic whitelist PadForge adds itself so it can still read hidden controllers; removes the entry on exit
Engine-aware Hiding active only while the engine runs. Stop the engine or close PadForge. Controllers reappear.
Master switch Settings > Input Engine > Hide devices from games (global on/off)

Whitelist management

Other controller utilities (Steam Input, etc.) need whitelist entries to see hidden controllers:

  • Click Add... to browse for an executable
  • Select an entry and click Remove to revoke access

Installing

  1. Open Settings > scroll to HidHide Driver > click Install > approve UAC.
  2. A system restart may be required for full effect. Restart if hiding does not work immediately.

Uninstalling

  1. Disable "Hide from games" on all devices first (Uninstall stays disabled while any device has hiding enabled).
  2. Open Settings > scroll to HidHide Driver > click Uninstall > approve UAC.
  3. All physical controllers immediately become visible to all applications.

Windows MIDI Services

System-wide virtual MIDI endpoint ("PadForge MIDI") that any music software can receive from. Turns a gamepad into a MIDI controller. No loopMIDI needed.

Install for:

  • Controlling a DAW (Ableton Live, FL Studio, Reaper, etc.) via gamepad
  • Trigger MIDI notes from controller buttons during live performance
  • Send MIDI CC messages from analog sticks and triggers to synth parameters
  • Drive VJ or lighting applications that accept MIDI input

OS requirement

Requires Windows 11 24H2 (build 26100) or later. On older versions, the Install button is disabled.

Installing

  1. Open Settings > scroll to Windows MIDI Services > click Install.
  2. PadForge downloads the installer from GitHub (~210 MB). A progress overlay appears.
  3. The installer runs automatically. Status dot turns green on completion.

Uninstalling

  1. Remove or change all MIDI slots from the Dashboard first.
  2. Open Settings > scroll to Windows MIDI Services > click Uninstall.

OpenXInput (bundled, no install)

PadForge embeds a fork of OpenXInput inside the EXE: Resources/OpenXInput/x64/xinput1_4.dll and devobj.dll. At launch, PadForge calls SetDllDirectory so the loader resolves those copies first. The fork's XInputGetState / XInputGetCapabilities filter out the HIDMaestro virtual controllers PadForge itself created, preventing PadForge from re-enumerating its own outputs as physical inputs.

This filter is PadForge-only. Other applications (games, Steam, etc.) load the system XInput and see PadForge's virtuals normally — that's the entire point of having virtual controllers.

There is no setting, no install, no uninstall. The shim ships with PadForge and is removed when you delete the PadForge folder.

For implementation detail see HIDMaestro Deep Dive (the OpenXInput shim is part of HM's three-surface filter architecture: SDL3 fork + OpenXInput fork + SetDllDirectory preload).


Compatibility matrix

Driver / Service Windows 10 (x64) Windows 11 (x64) Windows 11 24H2+ (x64) ARM64 x86 (32-bit)
HIDMaestro Yes Yes Yes * *
HidHide Yes Yes Yes No No
Windows MIDI Services No No Yes No No
Keyboard+Mouse (no driver) Yes Yes Yes Yes Yes
  • HIDMaestro is a user-mode UMDF2 driver. Architecture support tracks the HM project itself; check the HIDMaestro releases for current ARM64/x86 status.
  • HidHide is an x64-only kernel driver. It does not work on ARM64 (Snapdragon-based laptops) or 32-bit Windows.
  • Windows MIDI Services requires Windows 11 24H2 (build 26100)+. The Install button auto-disables on older versions.
  • Keyboard+Mouse uses standard Windows APIs. Works everywhere with no driver.
  • PadForge itself runs on Windows 10 and all Windows 11 versions.

Uninstall guards

PadForge prevents removing a driver that is currently in use:

Driver Uninstall blocked when...
HIDMaestro Any Xbox, PlayStation, or Extended slot exists on the Dashboard
HidHide Any device has "Hide from games" enabled
MIDI Services Any MIDI slot exists on the Dashboard

Remove the slots or disable the feature first. Then Uninstall becomes available.


Troubleshooting

Installation issues

Problem Solution
Clicking Install does nothing UAC prompt may be behind another window. Check the taskbar and click Yes.
Status stays red after install Retry. If still failing, restart the computer and retry.
HIDMaestro install fails A previous v2-era install of ViGEmBus or vJoy can sometimes leave registry stragglers. The legacy driver cleanup dialog handles those on first v3 launch; if you skipped it, run it from Settings > Drivers > Legacy cleanup (when present), then retry.
MIDI Services download fails Check internet connection. PadForge downloads ~210 MB from GitHub.
MIDI Install button disabled Windows 11 24H2 (build 26100)+ required. Check version in Settings > System > About.

Runtime issues

Problem Solution
Xbox / PlayStation / Extended buttons dimmed in Add Controller Install HIDMaestro from Settings.
MIDI button dimmed or missing Install MIDI Services (requires Windows 11 24H2+).
UAC prompt on every launch Expected. PadForge auto-elevates so HIDMaestro install/uninstall and HidHide whitelist edits work. Decline if you only need read-only operation.
Double input (every press registers twice) Install HidHide, then enable "Hide from games" on the physical controller (Devices page).
Double input persists after HidHide Restart the game (some only detect controllers at launch). If still broken, restart the computer (especially after first-time HidHide install).
Virtual controller appears but games do not see it The OpenXInput shim in PadForge's own folder must coexist with the system XInput; do not move PadForge's Resources folder elsewhere. If you copied just the EXE, copy the whole release zip instead.
HIDMaestro slot stuck "Initializing" indefinitely The HM lifecycle is on a thread pool and can take a few seconds. If it never completes, check Settings > HM inactivity destroy timeout — a slot whose mapped devices go offline has its live VC torn down after that timeout (slot configuration is preserved; the VC recreates when devices return).

Driver conflicts

Problem Solution
HidHide hides controllers from other apps Add those apps to the whitelist in Settings (see Whitelist Management).
Antivirus flags a driver installer HIDMaestro and HidHide are open-source, signed drivers. Add an exception or pause real-time scanning during installation.

Related pages

Clone this wiki locally