Make any input look like any controller.

PadForge sits between your controller and the game and shows the game whatever shape it wants to see. Free. Open source. No paywall.

Powered by HIDMaestro. One driver, 225+ device profiles.

Three steps from download to playing

1

Download and run

Single EXE, no installer. PadForge runs elevated, so Windows shows the UAC prompt every launch. First launch installs HIDMaestro (the driver that creates virtual controllers) inside that same elevated session.

2

Add a virtual controller

Click Add Controller on the Dashboard. Pick Xbox, PlayStation, Extended (flight stick / wheel / HOTAS), MIDI, or Keyboard + Mouse. Up to 16 at once.

3

Assign your real controller

Open the Devices page, click the slot badge on your physical pad. Most controllers auto-map on assign. For the rest, press Map All. Done.

What PadForge does for you

Any controller, any game

That game that won't read your wheel? It will now.

PadForge translates a PS5 DualSense into the Xbox pad a Steam game expects. A Logitech G29 wheel into the gamepad a racing game accepts. A Saitek HOTAS into the gamepad a flight game stubbornly insists on. The game never knows the difference.

Mapping table with Source, Value, and Options columns
Multi-source mapping

Pedals, wheel, and HOTAS throttle. One virtual stick.

One mapping row can read from any number of physical inputs across any number of physical devices. Six combine modes plus a drag-and-drop custom formula editor. Cross-device chords so a button on the wheel and a button on the shifter trigger one virtual press.

Multi-source mapping row with combine mode and formula editor
Shift layers

Caps Lock for your controller.

Each slot can carry extra mapping tables that turn on while a button, chord, or axis is held. Five activation modes. Per-layer color and emoji icon. A Win11-style flyout pops to confirm the active layer the moment it engages.

Shift layer tab strip above the mapping grid
Gyro at Steam Input parity

Aim with the controller, not the stick.

Reference frames (Local, Player, World). Dual-threshold smoothing. Real-world calibration. A cross-device Aim Engage button that lets you hold a paddle on the wheel to wake the gyro on your handheld. Tuning saves per pad per slot, so the same pad on two slots can feel two different ways.

Gyro tab with Motion Passthrough, Calibration, Sensitivity, Response Shaping, and Engage cards
Trigger motors that feel the game

Forza, Gears, and Halo on your real Xbox pad.

PadForge passes Xbox impulse trigger data straight to the assigned physical Xbox One, Elite, or Series pad. The same data routes to DualSense as Adaptive Trigger Vibration so a DualSense playing Forza buzzes the triggers in step with an Xbox One pad doing the same. Plus audio-bass-driven trigger rumble and a constant trigger force that resumes when the game stops.

Impulse Triggers tab with per-trigger gain, Constant Trigger Force, and Audio Bass Trigger Rumble
DualSense effects in any game

Adaptive triggers and lightbar that don't need the game's blessing.

Seven adaptive trigger modes with a live preview that draws the resistance curve as you drag. Fifteen lightbar modes, six of them tied to your system audio (three Audio Pulse variants, three Audio Bands variants). The DualSense lights and triggers light up in games that have never heard of a DualSense.

Adaptive Triggers tab with mode dropdown and per-trigger sliders
Touchpad as more than a touchpad

Turn the DualSense pad into a mouse, a stick, or a D-pad.

A new Touchpad tab on every slot whose source carries a touchpad surface. Map a finger to mouse X/Y with per-axis sensitivity and invert. Anchor a virtual analog stick where your finger lands. Drop a wedge-thresholded D-pad on top. Plus the gesture stack: 4-way and 8-way swipes, taps, longpress, pinch, rotate, three- to five-finger gestures, and shape templates that match a finger trace against Square, Triangle, Z, Checkmark, and Circle in either direction (clockwise and counter-clockwise bind separately). Every toggle saves per slot. The same pad on two slots can fire two completely different gesture sets.

Touchpad tab with Stick / D-Pad Output, Mouse Output, Gesture Detection, In-Box Gestures, and Custom Gestures cards
Phone as a controller

Open a browser. Press buttons.

PadForge runs a tiny web server. Any device with a browser on your Wi-Fi can load it, pick a layout (Xbox 360, DualShock 4, or multi-touch touchpad), and play. Up to 16 phones connect at once, each a separate virtual pad. Touch buttons, dual analog sticks, an 8-way D-pad. Real rumble feedback through the Vibration API. No app to install on the phone.

Web controller showing analog sticks, D-pad, triggers, and ABXY buttons
Up to 16 controllers

Local co-op without limits.

Run two sim racers on two wheels at once. A flight stick plus throttle plus rudder pedals as one virtual HOTAS. Mixed gamepad types in one session. One combo press toggles every virtual controller on or off when you need to step away.

Dashboard with multiple virtual controllers active at once
Motion to emulators

Gyro into Cemu, Dolphin, Yuzu, and Ryujinx.

The built-in DSU / Cemuhook server broadcasts gyroscope and accelerometer on UDP port 26760 so emulators can use real motion for Splatoon, Wii titles, 3DS games, and anything else that asks for it. DualSense, DualShock 4, Switch Pro, and 2026 Steam Controller sources work out of the box.

Dashboard Motion Server section with port and enable toggle
MIDI from a gamepad

A 16-channel MIDI controller, no extra hardware.

Map sticks to Control Change messages. Map buttons to Note On / Note Off. Set velocity per slot. PadForge creates a real Windows MIDI endpoint through Windows MIDI Services that DAWs (Ableton Live, FL Studio, Reaper), VJ tools, and stage lighting apps can subscribe to. No loopMIDI bridge.

MIDI virtual controller with CC count, Note count, channel, and velocity

How PadForge stacks up

Feature comparison against the other Windows controller mappers. Each cell is verified against the project's own docs or source: x360ce v4.17.15.0 changelog; XOutput README + source; reWASD help.rewasd.com (v9.4); ds4windowsapp/DS4Windows v3.5; Steamworks Documentation. Cells marked ⚠️ mean the feature exists but is limited or unverified at the level of detail PadForge implements it.

PadForge x360ce XOutput reWASD DS4Windows Steam Input
Free$9.99+
Open source✅ archived
Works outside Steamonly via Add Non-Steam Game
Actively developed✅ 2026no release since Nov 2020deprecated 2024✅ v9.4 (2026)✅ v3.5 (Feb 2026)
Xbox 360 virtual output
Xbox One / Series virtual output✅ Xbox One
DualShock 4 virtual output
DualSense virtual output❌ input only
Switch Pro virtual output✅ via HIDMaestro
Flight stick / wheel / HOTAS virtual output (DirectInput)✅ 225+ HM profiles
MIDI virtual output
Keyboard + Mouse virtual output
Multi-source per row (one output, many inputs)✅ 6 combine modes + formula⚠️ "Combine Into" merges pads⚠️ MapperDataCollection (basic)❌ uses per-input Activators⚠️ per-input Activators
Custom formula editor (arithmetic, logic, if-then-else)✅ drag-and-drop operators + 10 starter recipes
Shift layers / modifier overlays✅ Hold / Toggle / Sticky / Cycle / Custom✅ up to 10 (Hold / Toggle / Custom)✅ Mode Shifts✅ Action Set Layers (stackable)
Cross-device chords (input on pad A + input on pad B)✅ via Group of devices❌ same controller only
Gyro mapping✅ Local / Player / World, RWC, Aim Engage✅ since v5.3 (curves, Flick Stick)✅ gyro-to-mouse, gyro-to-RS
Xbox Impulse Trigger passthrough✅ + DualSense AT Vibration auto-route✅ Xbox One output only
Constant trigger force
Audio-bass trigger rumble
Audio-bass body rumble
DualSense Adaptive Triggers✅ 7 modes + GameCube preset✅ 11 presets⚠️ limited
DualSense lightbar✅ 15 modes inc. Strobe + Battery✅ 6 modes + Player LED + Mic LED⚠️ basic, no audio⚠️ unverified
Touchpad: joystick / D-pad / mouse + gesture engine✅ joystick (anchor-relative), wedge D-pad, per-axis mouse (sensitivity + invert), in-box gestures (4-way / 8-way swipes, taps, longpress, pinch, rotate, two- to five-finger), shape templates (Circle in either direction, Square, Triangle, Z, Checkmark), custom recorded shapes⚠️ touchpad-as-mouse / -as-stick + click, no gesture engine⚠️ touchpad-as-mouse + four-direction Touchpad Swipe bindings⚠️ joystick / D-pad / mouse / touch menu, no multi-finger or shape recognition
HID PID 1.0 force feedback (wheels)✅ constant + periodic (DirectInput)⚠️ basic passthrough only
DSU / Cemuhook motion server (Cemu, Dolphin, Yuzu, Ryujinx)✅ port 26760
Phone as controller✅ in-browser, no app install, up to 16 phones at once, touchpad layout included⚠️ reWASD Mobile app (one phone, no touchpad layout)
Per-app profile switching✅ since v4.17.12 (Nov 2020)✅ Autodetect✅ per-game by design
Max simultaneous virtual controllers164 (hard-coded PAD1-4 in UI)4 (UI matches XInput slot indices)4 (Slot UI cap)4 (Output Slots UI cap)1 per physical pad
1000 Hz polling⚠️ unverified⚠️ unverified✅ user-selectable 500 / 1000 Hz✅ on USB DS4⚠️ unverified
3D + 2D controller visualization⚠️ 2D Xbox 360 only⚠️ 2D only⚠️ basic⚠️ configurator preview
Multi-point sensitivity curve editor✅ draggable points⚠️ single slider⚠️ deadzone only✅ custom 4-point⚠️ preset curves✅ response curves
2026 Steam Controller support✅ via SDL3 fork⚠️ unverified

Technical details

Short punch list. Each card is one feature, end to end.

🧩

Multi-source mappings

One row, any number of inputs, any number of devices. Six combine modes plus a drag-and-drop formula editor. Cross-device chords for free.

Shift layers

Caps Lock for your controller. Hold, Toggle, Sticky, Cycle, or Custom. Per-layer color and emoji. Cross-device activators.

🌐

Phone-as-controller

Browser-based gamepad over Wi-Fi. Xbox 360, DualShock 4, or multi-touch touchpad layout. Up to 16 phones on one PC at once. Vibration API rumble back to each phone. No app install.

On-screen touchpad overlay

Pin a transparent touchpad window to any monitor and use it as a touchpad input for the assigned DS4 or DualSense slot. Adjustable opacity, size, and position. No phone required.

👊

Touchpad outputs

Map any touchpad (DualSense, DS4, laptop trackpad, phone web touchpad, overlay) to mouse X/Y with per-axis sensitivity and invert, to a virtual analog stick anchored where your finger lands, or to a wedge-thresholded D-pad. Plus the gesture stack: swipes, taps, longpress, pinch, rotate, custom shape templates. Every toggle is per slot.

Gyro at Steam Input parity

Local, Player, and World reference frames. Real-world calibration. Cross-device Aim Engage. Tuning saves per pad per slot.

👁

3D and 2D visualization

Native art per profile. Xbox 360, Xbox One / Elite / Adaptive, Xbox Series, DualShock 4, DualSense. Click any button in 3D to record its mapping.

📈

Six deadzone shapes

Scaled Radial, Radial, Axial, Hybrid, Sloped Scaled Axial, Sloped Axial. Per-axis anti-deadzone. Custom sensitivity curves with draggable points.

📳

Force feedback both ways

Full rumble passthrough. HID PID 1.0 for wheels and joysticks. Audio bass rumble synthesized from system audio. Constant force vector.

💡

Adaptive triggers and lightbar

Seven DualSense trigger modes plus a one-click GameCube preset. Fifteen lightbar modes including audio-pulse, audio-band, Strobe, and Battery.

🔥

Impulse triggers

Xbox impulse trigger passthrough on the assigned physical pad. Same data routes to DualSense as Adaptive Trigger Vibration. Audio-bass trigger rumble.

Macros with action sequences

Combo triggers and Custom Expression formulas. Key presses, mouse, scroll, volume, lightbar, rumble. Four fire modes.

👤

Per-app profiles

Watches the foreground window. Switches when a matching app takes focus. Win11-style flyout confirms.

🚀

DSU motion server

Gyro and accel on UDP 26760. Cemu, Dolphin, Yuzu, Ryujinx all read it. Plug-and-play for any emulator that speaks Cemuhook.

🎵

MIDI virtual output

Channel 1-16. CC for axes, Note On/Off for buttons. Real Windows MIDI Services endpoint. No loopMIDI bridge.

📡

1000 Hz polling

Sub-millisecond jitter via high-resolution waitable timers. Bit-perfect axis passthrough at defaults. Built on SDL3.

🚫

Hide physical controllers

HidHide driver-level cloak. Per-device toggles auto-enable for gamepads. Cloak persists across launches.

Screenshots

Download

Free. Open source. No installer. Single EXE. Windows 10 or 11, 64-bit.

PadForge installs HIDMaestro on first run. HIDMaestro is the driver that creates virtual controllers. When you add a slot, HIDMaestro spins up a real HID device matching the controller shape you picked. The device disappears when you delete the slot.

Two more drivers are optional. PadForge offers to install each only when you need its feature:

  • HidHide. Hides your physical controller so games only see the virtual one. Install it when a game sees both at once.
  • Windows MIDI Services. Required only for the MIDI virtual controller type. Needs Windows 11 24H2 or later.

Free means free. PadForge will never become paid, freemium, or Patreon early-access paywalled.

Questions people ask

Will PadForge get my account banned in online games?

PadForge is a user-mode driver running outside the game process. Games see PadForge's virtual controller as a real HID device, the same way they see any commercial gamepad. Nothing is injected into the game, no game memory is read or written, no anti-cheat hook is touched.

Anti-cheat policies still vary per game. The same caveat that applies to any third-party input remapper (Steam Input, reWASD, x360ce, controller-companion software) applies to PadForge. Check the game's specific anti-cheat policy if you play competitively.

Is PadForge actually free, or is the free version crippled?

PadForge is fully free. No tiered version, no feature paywall, no time-limited trial. The entire feature set ships in one EXE.

It's licensed CC BY-NC-SA 4.0. Source is on GitHub. Anyone can build it from source. The only thing PadForge asks for is that you donate to a charity if you feel like donating.

Which controllers work as a source device?

Anything Windows recognises as a HID input device. Xbox 360, Xbox One, Xbox Elite, Xbox Series, DualShock 3 (with DsHidMini), DualShock 4, DualSense, DualSense Edge, Switch Pro, 2026 Steam Controller, any DirectInput joystick / flight stick / racing wheel / HOTAS / pedals, keyboards, mice, and even Windows Precision Touchpads.

For unrecognised gamepads, the Devices page has a one-click "Submit Mapping" button that opens a pre-filled GitHub issue with the device's VID:PID and SDL GUID. Once merged, the mapping ships to everyone on the next release.

Does PadForge run when PadForge isn't running?

HIDMaestro (the virtual-controller driver) stays loaded by Windows even when PadForge is closed, so already-created virtual controllers keep their device identity across launches. But the input pipeline — reading your physical pad and forwarding it — only runs while PadForge is open. Close PadForge and the virtual controllers stop receiving input.

Enable Start at login, Start minimized, and Minimize to system tray in Settings to make PadForge a persistent background service. Combined, those three give a fully silent setup that wakes when you sign in.

The game still sees my physical controller alongside the virtual one. What now?

Install HidHide from Settings → Drivers. It's a driver-level cloak that hides the physical device from every non-whitelisted process while leaving PadForge able to read it. The per-device toggle on the Devices page enables it for that controller.

HidHide is optional because not everyone needs it. Some games handle duplicate controllers fine. Some apps you want to keep seeing the physical pad (streaming overlays, controller-test tools). Install when you need the cloak.

Do I need an internet connection?

No. PadForge is local-only. It does not phone home, does not sync to a cloud, does not require an account, and never talks to a license server. Your settings live in PadForge.xml next to the EXE. Back that file up to keep your profiles.

Can I use a phone or tablet as a controller?

Yes. Enable the Web Controller on the Dashboard, open the URL it shows from any browser on the same Wi-Fi network (no app to install), pick an Xbox 360 layout, a DualShock 4 layout, or a Touchpad-only layout, and start playing. The browser sends input, PadForge feeds it into the slot you assign it to, and rumble feeds back to the phone through the browser's Vibration API where supported.

What does PadForge need to run?

Windows 10 or 11, 64-bit. The .NET 10 Desktop Runtime is bundled in the single-file release so there is nothing else to install. HIDMaestro auto-installs on first launch. HidHide and Windows MIDI Services are optional and install from Settings when you need them.

For best results: a recent Windows 11 build (24H2 or newer). The MIDI virtual controller type specifically needs Windows MIDI Services, which is Windows 11 24H2 (build 26100) and later.

I have a controller PadForge doesn't recognise. Can I add it?

Yes, in two ways. The fast way: turn on Force Raw Joystick Mode on the device card. PadForge stops trying to interpret it as a known gamepad layout and exposes every raw button and axis directly. Map them by hand on the Mappings tab.

The better way: click the Submit Mapping button on the device's card. Your browser opens a GitHub issue pre-filled with everything PadForge can read about the device. You fill in which raw input is which named button, and once merged the mapping ships in gamecontrollerdb_padforge.txt for every PadForge user.

How does PadForge compare to reWASD, Steam Input, or DS4Windows?

See the comparison table above. reWASD is the closest paid alternative at $9.99 and up. Where PadForge takes a different approach: DualSense virtual output, Extended virtual joysticks through 225+ HIDMaestro profiles, MIDI virtual output, a built-in phone-as-controller server, and gyro that matches Steam Input's reference-frame model (Local, Player, World) with real-world calibration and cross-device Aim Engage. DS4Windows, x360ce, and XOutput each leave one or more of those out.