Other

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

深度技术分析:PadForge——终极 Windows 控制设备重映射解决方案

项目背景与痛点

PadForge 是一个极其强大的控制设备重映射工具,适用于 Windows 平台。它让开发者能够将任何输入设备(如游戏手柄、飞行摇杆、方向盘、MIDI 设备甚至是键盘和鼠标)映射成任意一种输出设备,包括 Xbox、PlayStation、自定义游戏手柄等多种类型。这款工具的核心价值在于它能够解决复杂输入设备间的兼容性问题,使得多个设备在不同游戏环境中能够无缝切换。

传统控制器重映射工具往往只专注于单一设备的改造,PadForge 则通过重构输入设备的行为,直接为用户提供了全功能、高自由度的解决方案。这对于多设备爱好者或者游戏玩家来说,意味着能够自由定制设备的输入行为,提升游戏和工作的体验。

核心技术揭秘

PadForge 的功能实现,涉及到了多技术栈的结合使用,包括 SDL3、HIDMaestro 和 HidHide,主要技术栈包括以下几点:

  1. SDL3 (Simple DirectMedia Layer):用于跨平台的多媒体支持库,简化了底层硬件的接口。
  2. HIDMaestro:专门用于处理 HID 设备的库,能够灵活地处理任何 HIDs 的输入输出。
  3. HidHide:能够禁用或重定向某些设备以达到设备模拟和重映射的效果。
  4. .NET 10:框架支持面向对象开发,也提供了丰富的 UI 开发环境。

从架构上看,PadForge 包含输入采集、处理和输出映射三个主要部分。通过建立数据流,输入设备捕捉到的信号经过 PadForge 的算法处理后转化为需要模拟的目标设备的信号。具体流程如下:

graph TD A[输入设备信号] --> B[HIDMaestro] B --> C[信号处理] C --> D[HidHide管理] D --> E[输出设备模拟] E --> F[目标设备行为]

这一架构设计使得 PadForge 能够判断并校验设备的输入信号,根据用户设定的工作模式将输入信号映射到不同的输出设备上,甚至可以实现多设备信号同步处理。

功能亮点与差异

PadForge 的独特之处在于其灵活的映射能力。它允许开发者自定义任何输入设备的行为,提供数百种配置选项,使pad重映射能够迈向前所未有的精度。

相较于其他工具,PadForge 的核心优势在于其跨平台的设备兼容性以及细粒度的信号处理能力,可以为复杂的设备交互提供完美的解决方案。

应用场景与落地建议

在生产环境中使用 PadForge 时,用户需要关注一些关键点:

  • 硬件兼容性检查:确保目标设备和用来映射的输入设备在 PadForge 中都支持。
  • 配置应用性能:考虑设备间的同步问题,尤其是在多设备同步应用中。
  • 安全性配置:需要明确地配置安全策略,确保设备信号不会被操纵或泄露。

PadForge 适用的场景非常多,对于游戏开发、工作室内设备调试以及需要多个设备进行管理的用户来说,都是一个极具吸引力的选择。

综合评价

PadForge 作为控制设备重映射的终极解决方案,其强大的功能和灵活的自定义能力大大提升了设备间的兼容性和用户的应用体验。然而,使用它也需要一定的技术门槛和硬件资源投入。总的来说,PadForge 是实现复杂输入设备间信号融合与映射的利器,值得有高级需求的用户深入探索和使用。

关于

GitHub 原始描述(英文)

The ULTIMATE Windows controller remapper. Any input device in, any virtual controller out: Xbox, PlayStation, flight sticks, wheels, third-party gamepads, MIDI, or keyboard+mouse. Built on SDL3, HIDMaestro, HidHide, and .NET 10.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

C#
CSS
HTML
JavaScript
PowerShell
Python
Shell

贡献者

README

PadForge. Any input. Any controller. Free for Windows, with no paywall, no subscription and no telemetry, and its source available.

“And we talk of Christ, we rejoice in Christ, we preach of Christ, we prophesy of Christ, and we write according to our prophecies, that our children may know to what source they may look for a remission of their sins.” — 2 Nephi 25:26

Glory, honor, and praise to the Lord Jesus Christ, the source of all truth and salvation, forever and ever.

You are warmly invited to visit ComeUntoChrist.org and learn more about The Church of Jesus Christ of Latter-day Saints.


Build status Total downloads Discord Website Documentation GitHub followers Follow on X

PadForge makes any input look like any controller. Plug in a steering wheel. The game sees a PlayStation pad. Use a DualSense. The game sees an Xbox 360. Map your keyboard. The game sees a flight stick. Open a tab on your phone. That tab becomes a gamepad your PC games can use.

Free Windows app. No subscription. No paywall. No nag screens. Built on HelixToolkit, HidHide, HIDMaestro, .NET 10, OpenXInput, SDL3, Windows MIDI Services, and WPF UI.

PadForge is for sim racers running wheels in games that only understand Xbox controllers. For DualSense owners who want adaptive triggers and lightbar effects in Steam games that ignore them. For accessibility users mapping whatever hardware they can use. For anyone whose controller doesn’t match what their game expects.

16 virtual controllers at once · 1,110 devices known by USB identity · 337 device profiles · 1000 Hz polling · $0 forever

Dashboard

Softpedia Editor's Pick: rated 5 out of 5, Excellent

Softpedia Editor's Pick: rated 5/5, Excellent.
"PadForge shines best in its incredibly vast range of supported controller types." (Softpedia's editor review)

HIDMaestro
Powered by HIDMaestro. One driver, 337 device profiles.

New in 5.2.0: driving games' telemetry as controller inputs, DSX game mods with no DSX installed, the Novint Falcon as a force-feedback stick, keyboard screens, and DualSense haptics on every rumble pad
  • Driving games send PadForge their speed, RPM, gear, pedals and steering: Forza, F1, the Codemasters rally games, EA SPORTS WRC, BeamNG.drive, Live for Speed, Project CARS 2, Automobilista 2 and the truck simulators over the network, and Assetto Corsa and Assetto Corsa Competizione through shared memory. Turn on Listen for Game Telemetry on the Dashboard, and the values appear as a Game Telemetry row on the Devices page, ready to map like any controller’s inputs, start macros, or play adaptive trigger effects on a DualSense. Custom Formats describes a game PadForge does not know, field by field, and Forward to Port passes every packet on to a program such as SimHub.
  • Game mods made for DSX now send to PadForge, with no DSX installed. These fan mods give the Grand Theft Auto games, Red Dead Redemption 2, Skyrim, Fallout 4 and others adaptive triggers. Turn on Accept DSX Game Mods, and their trigger effects, lightbar, player lights and mute light play on the PlayStation controllers on your virtual controllers.
  • A Novint Falcon runs through Force Dimension’s SDK. Its handle is a stick and its grip’s four buttons are buttons, and a game’s rumble and force feedback push back on the handle, with a self-centering Joystick feel or an Aim feel that moves like a mouse. No Falcon has run against PadForge yet.
  • The screens on Logitech’s GamePanel devices, among them the G15, G19, G510 and G13, on the Mad Catz S.T.R.I.K.E. 7 and on a phone running Logitech Arx Control show the profile, a clock, play time, a stopwatch, a picture or a PlayStation controller’s lightbar color. The keys beside each screen map as buttons. None of these screens has run against PadForge yet.
  • A game that plays a DualSense’s haptics as audio now rumbles every rumble pad on that virtual controller, and Bass Shakers follow the haptics too (#522).
  • A Bluetooth DualShock 4 plays sound through its headphone jack, and its headset microphone works (#528). A second-model DualShock 4 (CUH-ZCT2) on a cable now plays PadForge’s sound through its headphone jack. On a cable or on Sony’s USB wireless adapter, a DualShock 4 takes the slot’s macro sounds only while headphones are plugged in. Steering Angle Rumble can play on one motor (#510), and axis macros set a virtual DualShock 3’s button pressure (#530).
  • HIDMaestro 2.1.0 keeps virtual Xbox 360 controllers working through sleep, delivers every frame once and in order, and holds up when every processor is busy. In HIDMaestro’s own test under that load, a virtual DualShock 4’s slowest frame took 1.4 ms instead of 360.
  • Fixes. Fanatec wheel commands go out on report 0x01, the report Fanatec bases read. They went out on report 0x00, so a CSL DD felt no force feedback, and no Fanatec base has run the fix yet. PadForge no longer rewrites PadForge.xml every 30 seconds while nothing changes. The web controller starts once another program frees its port, and a wheel’s RPM shift lights follow F1 22 and F1 25. A DualShock 4 on Sony’s USB wireless adapter plays in stereo, where it played a mono mix in the right ear only, and Master Volume sets the level of a DualShock 4’s and a Wii Remote’s macro sounds.
  • Bundled: HIDMaestro 2.1.0 with 337 device profiles, and BthPS3 3.2.1.
New in 5.1.0: HIDMaestro 2.0 with faster virtual controllers, an interface in 109 languages that works with screen readers such as NVDA, mice and keyboards that light up with the game, and haptic mice that rumble with it
  • HIDMaestro 2.0, the driver behind PadForge’s virtual controllers, is rebuilt around data. Each of its 337 device profiles now carries everything specific to its device, from the layout of its input to a PlayStation pad’s calibration replies and a Switch Pro’s handshake, and the driver holds no code written for any single device. A new controller of a known kind needs only a new file. It is faster too. HIDMaestro timed 2.0 against its last 1.x release: a virtual DualShock 4 appears in 217 ms instead of 467, an Xbox 360 controller in 358 ms instead of 674, and a DualSense’s input reaches the game in 48 microseconds instead of 66. A PlayStation controller that Steam holds open no longer stays broken until a reboot after PadForge removes it.
  • PadForge now works with screen readers, so blind and low-vision players can use it. The screen reader speaks a name for every control the Tab key reaches, in PadForge’s language, says which tile is picked and whether a switch is on, and reads status messages as they happen while PadForge is in front, so nothing talks over a game. Tiles, chips, curve points and dialogs all work from the keyboard. Tested with NVDA. Mouse users see no change.
  • The interface comes in 109 languages, up from 10. Of those, 42 are complete, British English among them, and the rest show English wherever a string is missing. Arabic, Persian, Urdu and Central Kurdish lay the interface out right to left, and Chinese, Japanese and Korean draw in their own fonts. Until you pick a language, PadForge uses your Windows display language.
  • Mice and keyboards now light up with the game, and haptic mice rumble with it. Assign one to a virtual controller, turn on Control This Device’s Lighting, and it takes that controller’s lighting in any mode a DualSense lightbar has. On a PlayStation controller it glows the color the game picks. The haptic mice are the Logitech MX Master 4, the SteelSeries Rival 500, 700 and 710, and Logitech’s iFeel mice once they run on PadForge’s driver. PadForge lights Logitech, Razer, SteelSeries and Windows Dynamic Lighting devices itself while their own app is closed, and through G HUB, Logitech Gaming Software, Synapse or GG while it runs. Headsets, mousepads and Razer Sensa HD gear follow through their vendor rows on the Devices page, which replace the Dashboard’s Lightbar Mirrors and Sensa switches. A switch that was on carries over.
  • A Keyboard + Mouse slot can now type and point through a virtual keyboard and mouse: pick one of 51 keyboard and 52 mouse models, and programs see that model. Windows input still works as before. The preview draws the keyboard you picked, key for key, with the mouse’s buttons, wheel and tilt, and a click on any of them maps it.
  • Settings can now remove HIDMaestro, and the PlayStation Bluetooth drivers, from the PC. Each removal shows what it takes and what it keeps before it starts.
  • MIDI works without Windows MIDI Services, whose installers Microsoft removed on October 1. On Windows 11 24H2 and later, Settings installs PadForge’s own build of that runtime. Everywhere else, each MIDI slot sends to a MIDI port you pick on its page. Once Windows has its built-in MIDI API, PadForge uses that.
  • The PS VR Aim Controller maps as a gamepad, and the NYXI Hyperion 3 and other Joy-Con 2 clones that speak the console protocol connect over Bluetooth. PadForge now knows 1,110 devices by USB identity. A wheel’s rotation slider stops at that wheel’s own limits, and clearing Set Rotation Range leaves the range to the wheel’s own software (#512).
  • Fixes. A number box saves every change, arrow clicks included (#511). Hide from Games hides a vJoy joystick (#515). A Wii Remote that reconnects with its IR camera off gets the camera back, so aiming works again (#484). A USB controller PadForge hides is taken away from a game or launcher that opened it first. A Switch 2 Pro slot presses the control each row names, and Paste and Copy From carry the mappings between slots of different layouts.
  • Bundled: HIDMaestro 2.0.3 with 337 device profiles, and BthPS3 3.2.1.
New in 5.0.0: analog keyboards with Rapid Trigger, Bliss-Box adapters, a Wii Remote light gun, motion from a stick, and 350 more devices known by USB identity
  • Analog keyboards. Turn on Read Analog Keyboards in Settings and a Hall effect or analog keyboard reports how far each key is pressed, as its own row on the Devices page: more than 370 models from 101 brands, Wooting, Razer, Keychron and NuPhy among them. A key maps to a button, a trigger or a stick axis, and two macros on one key, each with its own depth, make a soft press and a full press. Your typing is untouched. A Set Chroma Color macro action paints every Razer Chroma device while it runs.
  • Rapid Trigger and Toggle. Two new Primary Modes on a mapping row. Rapid Trigger releases and presses again on short moves of any input with depth: analog keys, triggers, sticks, MIDI controls. Toggle latches: one press holds the output, the next lets go.
  • Bliss-Box adapters. Read Bliss-Box Adapters names each port for the retro controller plugged in and maps it the way SDL maps that console’s pad, or the way RetroArch’s Bliss-Box files do where SDL has no mapping. It reads a DualShock 2’s pressure-sensitive buttons, drives rumble, shows pictures on a Dreamcast pad’s VMU, and backs up and restores an N64 Controller Pak.
  • Motion from a stick or buttons. Motion Pitch, Yaw and Roll rows give a PlayStation, Nintendo or Valve virtual controller motion from any input. Speed turns the controller while the stick is held. Angle leans it and levels it when you let go.
  • A Wii Remote is a light gun. Calibrate it to your screen from its Light Gun section on the Devices page, four targets and a press of B each, and the crosshair lands where the remote points. The aim corrects for twist. A Namco GunCon 2 calibrates the same way.
  • DualShock 3. Its gyro measures yaw only, so Pitch and Roll Simulation fills pitch and roll from the accelerometer. The pad gets its own 3D model and 2D art, and the DualShock 3 (SIXAXIS): Full preset presents it the way PCSX2 and RPCS3 read it, pressure on ten buttons included. An original Xbox controller with one of the 63 listed IDs fills its pressure rows on its own.
  • Controllers Windows leaves unusable. Bluetooth LE pads, the iCade, serial I-Force wheels with their force feedback, DJI RC remotes over the network, clone Xbox 360 receivers, the Xbox 360 chatpad and uDraw, the Ring-Con, the PS Move Sharp Shooter and Racing Wheel, Namco USIO boards and more. PadForge now knows 1,108 devices by USB identity, up from 758, 289 of them pads the community SDL_GameControllerDB maps.
  • The web controller on plain HTTP, and menus on the phone. Also Serve Plain HTTP adds a second address behind a ten-character access code, for browsers that refuse a self-signed certificate and for tunnels. Web Menus shows a slot’s Touch Grid menus on the phone as pages of tiles, and menu cells and layers take emoji and pictures as icons.
  • Fixes. A new profile’s macros survive a restart (#487). A mapped Numpad Enter is consumed (#486). Player and World gyro space turn the same way as Local. The abstract Gamepad names appear only under (Any Device).
  • Bundled: HIDMaestro 1.10.1 with 232 device profiles, and BthPS3 3.2.1, which carries the fix for the Windows stop error a DualShock 3 could cause when it disconnected over Bluetooth. PadForge updates an older BthPS3 at launch.
New in 4.5.3: updates from inside PadForge, motion that survives an early save or a copy, and 2D labels on the first click
  • PadForge updates itself. Settings has a new Updates card. It checks GitHub 20 seconds after launch and every 12 hours, downloads the build for your processor, checks it against the SHA-256 checksum GitHub publishes, and installs it when you click Install and Restart, or at the next launch with Install Updates Automatically on. Include Pre-Releases adds the latest dev build. Diagnostics now shows the build beside the version. 4.5.2 and older have no updater, so reaching 4.5.3 takes this one manual download.
  • Motion stays on after an early save or a copy. A PlayStation slot saved before its DualSense arrived, or a slot filled by Copy and Paste or Copy From from a slot whose pad it lacks, came up with Motion Gyro and Motion Accelerometer empty. An empty motion row switches motion off, so the virtual DS4 had no gyro. Both paths now leave those rows for the auto-map to fill. A slot made before this fix keeps its empty rows: map them by hand, or delete the slot and add it again.
  • The 2D annotation labels draw when you turn them on. They used to appear only after the window was resized.
New in 4.5.2: HidHide, Vosk voice recognition and Xbox Elite paddles on Windows on ARM, and USB Elite paddles that stay on across Windows updates
  • Windows on ARM gains HidHide, Vosk voice recognition and Xbox Elite paddles. They work there as they do on x64. 4.5.1 said HidHide had no ARM64 driver. It has one.
  • Elite paddles over USB and the Xbox Wireless Adapter stay on across Windows updates. That route reads an undocumented Windows format, so the input library checks the Windows files behind it before switching it on. The check was five exact file hashes, which a Windows update broke. It now accepts a family of versions: Windows 11 24H2 or 25H2 at build 26100.8973 or 26200.8973 (July 28, 2026) or later, with version 3 of the GameInput redistributable, or with none. On Windows 10 and older Windows 11 that route stays off, and paddles are read over Bluetooth only.
  • A voice macro no longer crashes PadForge after a temp cleanup. A cleaner that removed the cached speech model’s files and left its folders made the speech engine hand back an empty model, and the first recognizer built on it took the app down. PadForge now checks the model and unpacks it again.

None of the ARM64 work has run on ARM64 hardware yet. Requirements lists what the ARM64 build still lacks.

New in 4.5.0: a VR headset and its controllers as input, Logitech G-keys, a phone's controller through the browser, and an install 30% smaller
  • A VR headset, without a VR game. Enable OpenXR Headset Input on the Dashboard and the headset’s pose arrives on the Head Tracker device as the same six axes OpenTrack uses. A Quest on Link or Air Link has to go through SteamVR’s runtime, since Meta’s cannot run the background session PadForge needs. So far the input has run only against SteamVR’s runtime, with no headset attached. PadForge talks to the runtime directly instead of through the Khronos loader, so it can pick a runtime for itself without touching the machine’s default and no other program’s API layers enter its process. The session draws nothing, so no VR game has to be running.
  • Your VR controllers become gamepads. Each hand is its own device row: six pose axes in the same order as the head’s, named Controller rather than Head, plus the thumbstick, trigger, grip, and four buttons. Oculus Touch, Valve Index, and the Khronos simple profile are all suggested and the runtime picks the match. Left and right are separate devices, and a controller that goes to sleep returns its axes to rest after a second.
  • Per-axis head tracking ranges. Any one of the six axes can pin its own range while the rest follow the shared pair, for when neck rotation and leaning cover very different distances.
  • Logitech G-keys, without burning a keycode. Tick Read Logitech G-Keys in Settings and the G-keys arrive through Logitech’s own SDK as their own device row: 29 keys in each of M1, M2 and M3, plus a Logitech mouse’s buttons 6 through 20. No programming a G-key to type some real key that then fires in every other program.
  • A controller paired to your phone, through the browser. The Browser Gamepad page forwards a pad the phone or handheld can see over the Gamepad API, with rumble where the browser offers it. iPhone Safari offers none. Controls past a slot’s shape are dropped, and the page says how many.
  • Pens and drawing tablets are input devices. A Windows pen reports its barrel buttons, its eraser, inversion and in-range as named buttons, and its contact rides the touchpad lane. There is no tilt or twist, and the row is excluded from (Any Device) sources, so bind it by name.
  • Keyboard and mouse surfaces. A Preset chip, a preview that follows it, and a per-slot surface mode that persists.
  • Menus gained a Layer picker, a stay-open mode, and per-cell icon size.
  • The install is 30% smaller and starts faster. 412.3 MB down to 289.2 MB, and startup from 6.26 s to 5.58 s. Each controller atlas now ships in the format that suits it, opaque ones as JPEG, and 352 duplicate meshes were dropped for a shared geometry table. The transparent atlases and the speech model are stored uncompressed inside a Brotli stream instead of being deflated and then compressed again, and the meshes are Brotli-packed rather than deflated.
  • Eight new Xbox Series skins: Sonic the Hedgehog, Razer, Captain America, Boba Fett, The Mandalorian, Stormtrooper, Darth Vader, and Star Wars: Squadrons.
  • Always Show in System Tray is its own setting, so the tray icon no longer depends on Close to System Tray.
  • A virtual pad reports a real battery level. Two off-by-one defects, one in the DualShock 4 packer and one in HIDMaestro’s XInput reply, had every virtual pad reading flat.
  • A game’s DualSense trigger feedback reaches the pad. The virtual pad carries the physical DualSense’s trigger feedback bytes instead of zeroing them, so a game that reads them back sees the truth.
  • Rumble on Padix PlayStation converters, written directly as the 9-byte motor report.
  • Proportional steering-angle rumble on wheels.
  • Signed BthPS3 2.12.0 is bundled, and an older install is upgraded in place.
  • Elite paddles heal themselves across every transport and focus change.
New in 4.4.0: Valve hardware from an Extended slot, head tracking from OpenTrack, your desk lighting up with the pad, and the buttons a handheld PC hides
  • Valve hardware from an Extended slot. A Steam Deck Controller, a Steam Controller (Wired), a Steam Controller (2026), and Composite variants of the first two, each with Valve’s own vendor and product IDs. The Composite and 2026 profiles pack Valve’s native input frame with both trackpads and the rear buttons, and a one-to-one automap lands a real Valve pad’s controls straight across. The two Steam Controller bodies in the 3D preview are meshed from Valve’s published CAD.
  • Handheld PCs give up their hidden buttons. Rear paddles, menu keys, wheels, and vendor hotkeys on the Legion Go, ROG Ally, GPD Win, OneXPlayer, AYANEO, AYN, Zotac Zone, and MSI Claw become named buttons by watching you press each one, through a typed key combination, a vendor HID report bit, or a vendor WMI event. No per-model table ships. The machine’s own gyroscope joins as a System Motion device.
  • Head tracking from OpenTrack. OpenTrack’s UDP output, port 4242 by default, and the FreeTrack 2.0 shared memory both arrive as one Head Tracker device with six axes: yaw, pitch, roll, and the three translations. Turn it on in the Dashboard’s Head Tracking section.
  • The desk lights up with the pad. Razer Chroma and Logitech LIGHTSYNC devices take the virtual pad’s lightbar color, and Razer Sensa HD hardware plays its rumble. Three Dashboard toggles, each one a profile can carry. Chroma and Sensa need Razer Synapse installed and LIGHTSYNC needs G HUB, since each runs on the vendor’s own engine.
  • The Steam Controller 2026 plays a DualSense persona’s haptics as PCM. Wired or on the dongle, the persona’s authored haptic track streams to the pad’s own actuators instead of collapsing to a tone, with sound macros, the system-audio mirror, and swipe ticks riding the same stream. Over Bluetooth the pad stays on the tone lane.
  • A macro can change the shift layer. A Switch Layer action jumps the slot to Base or to any layer you authored, and it holds until another switch, a Latch or Cycle activator, or a profile change. A shift activator can carry an Only While in Layer condition, checked when the input goes down and held for the whole press, so one button can mean something different on every layer.
  • Menu cells fire macros, and the icons are yours. A radial or grid cell can run a macro instead of pressing a button. An icon package is one zip of images with a .pficons extension, added from the Menus tab and read straight from the file without unpacking.
  • Launchers and scripts switch profiles. Turn on Allow External Control by Launchers and Scripts and PadForge serves a local named pipe that Playnite, LaunchBox, or a one-line script can activate a profile through. The profile is held until the script releases it or you switch one yourself.
  • A profile can carry its own polling rate, 1000 Hz down to 62.5 Hz, overriding the Settings interval while that profile is active.
  • Quick Charge drops the Bluetooth link when the pad plugs in. A controller that reports it is charging over USB has its radio link dropped, so it charges without powering the radio. Any USB power source counts, wall chargers included.
  • The Wii Remote learns how it is held. A Grip card on the Gyro tab rotates the gyro, the accelerometer, gravity, and the D-pad into the game’s frame for Pointing, Sideways (Face Up), Wii Wheel (Face Toward You), or Upright.
  • Motion Shake is a mapping source, and on a Wii Remote the aux entry names itself Nunchuk Shake.
  • Assignment prompts. When a device connects while a virtual controller’s page is open, PadForge offers to assign it there, with two opt-outs in Settings. Keyboards, mice, touchpads, and media keys are never offered.
  • Hide from Games reaches an XInput interface buried inside a composite pad, the shape a handheld’s built-in controller and a pad on an Xbox 360 wireless receiver both have. A device row you deliberately left visible keeps its own nodes.
  • The Dashboard and Settings pages run in the order they mean, and the driver status strip left the Dashboard for Settings, where the drivers are installed.
  • Fixes: pressure-scaled turbo takes its direction from the trigger instead of reading a stick’s lower half backward, a dual-connected Sony pad drops its stale radio link when the wired audio sink builds, switching an Extended slot’s profile carries the bindings across and maps the new ones, phantom adaptive triggers no longer appear on Virtual Xbox 360 slots, and unassigning a device drops its per-slot config instead of leaving it behind.
New in 4.3.2: crossfeed, a graphic EQ, and a limiter for the DualSense headset jack, and Copy / Paste that really carries the whole slot
  • A processing chain for the DualSense headset jack. Under Output Path on the Audio tab, three stages run on everything the slot plays before the pad encodes it. Crossfeed mixes a little of each channel into the other the way a room does, with bs2b’s six classic presets, Jan Meier, the bs2b default, and a Custom level with its own cutoff and feed sliders. A graphic parametric EQ: a log-frequency curve with one draggable handle per band, drag for frequency and gain, wheel for width, with typed rows underneath and six band types. A limiter, on by default, so a boosted band never clips the pad’s encoder.
  • AutoEq import. Download the Custom Parametric Eq for your headphones from autoeq.app and click Import from File. The bands, the preamp, and the enable all land, and a status line says what it did. The clipboard import stays for profiles that arrive as text.
  • Follow Headphone Jack works without a virtual DualSense. The jack was only ever read by the virtual-pad lane, so with none on the slot it never switched and Mirror System Audio played into a muted path. PadForge reads the jack from the pad itself now, USB or Bluetooth.
  • Slot Copy and Paste carry everything. The Bass Shakers, SOCD, and Keep Awake settings and the slot’s macros ride the clipboard along with the mappings, shift layers, menus, and per-device tuning they already did. Paste replaces the target’s macros rather than adding to them.
  • The band-type picker is localized, and the EQ editor’s frequency ceiling matches the engine’s.
  • The DualShock 3 shows its pressure axes without Raw Joystick Mode again, after the 4.3.1 sparse-axis change computed the list too early.
  • Fixes from the audits: a Move Navigation hand-mapped “Axis 15” no longer reads as foreign and strips the slot, the EQ grid rebuilds on every device-config swap rather than only on a device switch, an engine restart no longer leaves the firmware speaker path unasserted, a failed headphone-jack open no longer respawns a reader every five seconds, and the Mappings-tab paste stops the slot’s macro sounds before replacing its macros.
New in 4.3.1: the Navigation controller over Bluetooth, idle disconnect for the DualShock 3 family, and only the inputs a pad actually has
  • The PlayStation Move Navigation controller works over Bluetooth. It pairs over WinUSB, takes its address from its own device node, pairs itself on the dock like the Move, and follows DsHidMini’s connect-time order exactly: output report first, then the input stream, then one enable packet and never a repeat.
  • Idle Disconnect for the DualShock 3, PlayStation Move, and Navigation controller, off by default, set in minutes on the device’s Power section.
  • Only the inputs a pad actually has. A Navigation controller listed every DualShock 3 button and axis it shares a report layout with. PadForge asks the pad which standardized buttons and axes it declares and shows only those, numbering preserved. The PlayStation Move and the VR controllers had the same defect and the same fix.
  • Button numbering stays SDL’s positional numbering while a device is offline, so a button keeps one number either side of the boundary (discussion #344).
  • A Switch 2 Pro Controller entry survives a restart, and PadForge stops rewriting its settings file while idle.
  • Full Screen works from a maximized window (discussion #342), and the sidebar keeps one active bar (discussion #340).
  • The DualSense sends its connect-time LED release over Bluetooth, so the lightbar comes up under PadForge’s control on a fresh connection.
  • The offline voice model ships inside the executable, repacked with spec-correct separators.
New in 4.3.0: a rebuilt web controller, voice macros, PlayStation Move, VR devices as sources, and Remote Link over the internet
  • The web controller, rebuilt. Ten controller layouts instead of two: Xbox 360, Xbox One, Xbox Series X|S, DualShock 4, DualSense, DualSense Edge, Switch Pro, Switch 2 Pro, Steam Deck, and Steam Controller. The DualShock 4, DualSense, and Xbox Series cards carry color finishes you pick before opening them. The DualShock 4 and DualSense layouts draw the slot’s LED color on the pad’s own lightbar, and the DualSense adds its player indicator row, both configurable from the Lighting tab like the physical pads. Triggers get analog sliders, and the Steam layouts carry both trackpads and the rear buttons.
  • Your phone’s motion, as a source. The page reads the handset’s gyroscope and accelerometer and streams them to the slot. Browsers only hand out sensor data over a secure connection, so PadForge binds a self-signed certificate and serves over HTTPS, with a QR code on the Dashboard to get the phone there.
  • Build your own pad. A builder that starts from a blank surface and lets you drag sticks, buttons, triggers and touch areas to where your thumbs actually are, saved with your settings.
  • Voice macros. Registered phrases spoken into a microphone fire macros, recognized offline by Vosk with no account and no cloud. The model ships inside PadForge, so it works on a machine that has never been online.
  • PlayStation Move and Navigation controllers over USB and Bluetooth, including the Move’s sphere and motion.
  • Real VR devices as input sources. A headset’s pose and its motion controllers become mapping sources, so what you are holding in VR can drive a flat game.
  • 3Dconnexion SpaceMouse. The 6DoF puck reports as a mapping source, all six axes.
  • Remote Link over the internet. Dial another PadForge PC by code with no VPN and no port forwarding.
  • Pressure-sensitive turbo. The repeat rate follows how hard the button or trigger is pressed.
  • Trackball momentum on sticks, plus clamp and gain knobs for the touchpad’s existing momentum.
  • Gyro Tilt. A degree-ranged tilt mode alongside the existing rate mode, with Gyro Lean documented and its Sensitivity dial fixed, plus a Recenter action and independent yaw and roll inversion.
  • Low-battery notifications, plus an identify buzz that rumbles any device so you can tell which one it is.
  • A Diagnostics section in Settings. Versions to paste into a report, a log you can switch on without a launch flag, and a Save Snapshot button that writes out the last few minutes of engine events even when logging was off.
  • Mapping picker gains find-as-you-type and device filtering, and the search filters the table.
  • Moza wheels recognized, and DualSense effect passthrough for games that drive the triggers themselves.
  • Anti-deadzone floors the stick pair rather than each axis, which closes the gaps that showed at the cardinals.
  • Mirror System Audio no longer cracks over Bluetooth when the loopback ring runs dry under bursty capture.
New in 4.2.0: VR controllers, headset head tracking, controller audio and microphone, and starter profiles
  • Virtual VR controllers. A VR slot presents a full SteamVR left and right hand pair, driven by any controller, keyboard, or motion source you map to it. One slot serves both hands, every stick, trigger, grip and button is a mapping target, and the game’s haptics come back out through the device you are actually holding. PadForge installs the SteamVR runtime itself if you do not have it, with no Steam account and no Steam client, to a folder you choose.
  • Headset head tracking. Sony headphones that carry a head tracker, confirmed on the WH-1000XM5 family, become a motion source. Turn your head to aim, lean, or drive anything that takes gyro. Discovery is by capability rather than a model list, so any headset exposing the same sensor collection works.
  • Controller audio and microphone. An opt-in virtual USB persona carries the DualSense’s voice-coil haptics, its speaker, and its microphone, so authored haptics and controller audio reach the pad the way a PS5 does it.
  • Bundled starter profiles. Thirteen general-purpose archetypes, from twin-stick to racing to space sim, ready to apply to any controller instead of starting from an empty grid.
  • Keep Controller Awake. Holds a small idle deflection so games stop cutting vibration the moment you touch the mouse or keyboard.
  • Sony calibration reports. Virtual DualSense and DS4 controllers now answer the calibration feature report that games with native PlayStation support demand, so those titles stop rejecting them.
  • DualShock 3 first-run pairing. Seven stacked defects in the driver install are fixed, so a clean machine pairs instead of flashing forever.
  • Steam Controller 2015 rumble emulated on the touchpad haptics, plus a fix for the Bluetooth swipe-haptic stall that made the touchpad mouse teleport.
  • Left Joy-Con gyro gains the Horizontal (Yaw + Roll) blend, and IR Brightness works on a combined Joy-Con pair.
  • Controller finishes in the preview. Ten DualSense colorways including Spider-Man 2 and Final Fantasy XVI, thirteen Xbox Series finishes, and the DualSense Edge as its own model family.
New in 4.1.0: Steam Workshop config import, DualShock 3, Wii pointer modes, and a new look
  • Steam Workshop config import. Browse the community controller configs on the Steam Workshop and translate the one you pick into a PadForge profile, over an anonymous Steam connection with no account.
  • DualShock 3 controllers. Plug one in over USB and PadForge binds it with WinUSB on the spot, or pair it over Bluetooth from the Devices page, which installs a signed BthPS3 driver on demand. Sixaxis motion, ten pressure axes, rumble, the player LED, and battery all report.
  • Wii pointer modes. The Wii Remote’s IR camera becomes an on-screen pointer, with an FPS-mouse mode, aspect-corrected border modes, and a freeze that holds position when the sensor bar leaves view instead of snapping to a corner.
  • Mouse gestures. Hold a mouse button and flick up, down, left, or right to fire an action.
  • Stick Trim. A stick ramps a held digital trigger into a smooth analog press.
  • SOCD cleaning. Opposite key presses on the Keyboard & Mouse controller resolve with last-wins (Snap Tap), first-wins, or neutral.
  • Guide button LED brightness. Dim the Xbox button on Xbox One, Elite, and Series pads over USB, and the 2015 Steam Controller’s home LED, fixed or following the battery.
  • Shift layers gain a long-press activation delay and an inactivity auto-cancel.
  • Text Block macro action types text a character at a time.
  • Clone Device 1:1 copies a device’s controls onto an Extended slot in one click.
  • Raw Axis N sources up to 24 axes.
  • Nintendo virtual controller. A virtual Switch Pro Controller through HIDMaestro, with gyro passthrough and HOME LED control.
  • Bass Shakers. Game rumble and force feedback route to any audio output as low-frequency tones, four voices with per-voice frequency and gain.
  • Flick Stick. Flick sources on either stick or a touchpad, with a rotation offset card.
  • Twelve macro fire modes. On Single / Double / Triple Press, On Long Press, On Short Press, Toggle, and Turbo join the original five.
  • Axis macro actions. Latch a virtual axis to a value, release it, or scale it from a macro.
  • Macro layer scope. A macro can limit itself to chosen shift layers.
  • SOCD on controller buttons. Opposing-pair cleaning beyond the Keyboard & Mouse controller, per slot.
  • Pressure-sensitive touchpads. Per-finger pressure as mapping sources.
  • Touchpad swipe haptics tick the pad as a finger travels, and a custom activation button arms mouse gestures from any recorded input.
  • HOME LED on Switch controllers. Fifteen brightness steps on Switch Pro and right Joy-Con, joining the Xbox Guide LED control.
  • Joy-Con pair audio follows the motor. Haptic tones play through the coil the game drives.
  • Left Joy-Con aux motion. A paired Joy-Con exposes the left half’s gyro and accelerometer as separate sources.
  • Per-source Acceleration, Invert Output, and Fire on Release. New per-row tuning, plus activators that fire when released.
  • Trackpad pointer response. A libinput-derived acceleration curve makes touchpad-as-mouse feel like a laptop trackpad.
  • Trackball momentum. Flick the touchpad or the mouse stick and the cursor coasts to a stop on real constant-friction physics (a port of the Steam Controller driver’s own trackball), with glide, fling boost, threshold, speed cap, and a stacking mode that builds speed across swipes.
  • Time-based cursor rates. Keyboard + Mouse cursor and scroll speeds are real rates, independent of polling rate.
  • Clear All clears everything. The Mappings tab’s Clear All resets sources, options, and tuning in one confirmed step.
  • Carrying forward from 3.5 and 3.6: Wii Bluetooth pairing, Remote Link across PCs, native wheel force feedback, MIDI in and out, and controller-speaker audio.

Full documentation at padforge.org/docs. Every device PadForge recognizes by USB identity is on the supported devices list.


Quick start

  1. Download the win-x64 zip from the latest release and extract PadForge.exe. On Windows on ARM, take the win-arm64 zip.
  2. Run it. PadForge always runs elevated, so Windows shows the UAC prompt at startup. The first Xbox, PlayStation, Nintendo, or Extended virtual controller it starts installs HIDMaestro inside that same elevated session.
  3. Click Add Controller on the Dashboard. Pick Xbox, PlayStation, Nintendo, Extended, Keyboard + Mouse, MIDI, or VR.
  4. Open the Devices page and drag a physical device’s card onto the new slot’s card in the sidebar.
  5. Most controllers auto-map on assign. For the rest, click Map All to walk every button in one pass, or use the Mappings tab to bind one at a time.
  6. Launch your game. The game sees the virtual controller as real hardware.

Most games “just work” after step 5. If a game sees both your physical and virtual controller at once, install HidHide from Settings → HidHide Driver to hide the physical one.

From 4.5.3 on, Settings → Updates keeps PadForge current. It checks GitHub on its own and installs a new version in place, settings untouched.


Remap: 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.

Mappings tab

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 (Strongest, Combined, Average, Either, Both, Only One) 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. A Primary Mode dropdown sets how the main source reads: Direct, Incremental, Ramp, Toggle, Rapid Trigger, or Invert On Hold. Ramp builds a stick axis from two keyboard keys. The Up key drives toward +1 and the Down key toward -1, each over an Attack time. Release ramps back to center over a Release time when Autocenter is on, or holds where you left it when off. A Reverse multiplier sets how fast it returns when you press the opposite key.

Your racing game’s speed, RPM and pedals, as inputs.

Driving games send PadForge their telemetry: Forza, F1, the Codemasters rally games, EA SPORTS WRC, BeamNG.drive, Live for Speed, Project CARS 2, Automobilista 2 and the truck simulators over the network, and Assetto Corsa and Assetto Corsa Competizione through shared memory. Turn on Listen for Game Telemetry on the Dashboard, and a Game Telemetry row on the Devices page carries speed, RPM, throttle, brake, clutch, handbrake and steering as axes, and the gear as buttons. Map them like any controller’s inputs, start a macro when the RPM passes a mark, or play an adaptive trigger effect on a DualSense near the limiter. Custom Formats describes a game PadForge does not know, field by field, and Forward to Port hands every packet on to a program such as SimHub.

The Game Telemetry section on the Dashboard

Squeeze a digital trigger like it’s analog.

Stick Trim is a combine mode on the mapping row. Hold a digital trigger to arm it, then a stick sets how hard it presses, from a feather to full. Each row gets its own deadzone and ramp rate, and you choose whether that level snaps back to full the moment you let go. A keyboard bumper becomes a trigger you can modulate.

Every key on an analog keyboard is an axis.

Turn on Read Analog Keyboards in Settings and a Hall effect or analog keyboard gets its own row on the Devices page, with a bar for how far each key is down: more than 370 models from 101 brands, Wooting, Razer, Keychron and NuPhy among them. A key maps to a button, a trigger or a stick axis, at whatever depth it is pressed, and Windows keeps receiving your typing as usual.

An analog keyboard on the Devices page

Rapid Trigger, and a Toggle that latches.

Rapid Trigger presses and releases on movement instead of at one fixed point: lift a key a little and it lets go, push it a little and it presses again, the way analog keyboards do it in their firmware. PadForge offers it as a Primary Mode on any input with depth, analog keys, triggers, sticks and MIDI controls among them. Toggle turns any button into a latch: one press holds the output, the next lets go.

A trigger row in Rapid Trigger mode

Copy a controller onto a slot, one to one.

Assign a device to an Extended slot and click Clone Device 1:1. Every button and axis lands on the matching virtual output, straight through, with no per-input mapping. It works even when the device is assigned but unplugged, so you can set the profile up before the controller is plugged in.

Clone Device on an Extended slot

A virtual Switch Pro Controller.

The Nintendo slot type creates a virtual Switch Pro Controller through HIDMaestro. Games and emulators that speak Switch see the real thing: sticks, triggers, the full button set, gyro passed through from your physical pad, and the HOME button LED under your control. It sits in the Add Controller popup between PlayStation and Extended.

The slot’s preset dropdown also holds the Switch 2 Pro Controller, in two forms. Nintendo Switch 2 Pro Controller is a HID gamepad any program reads, with no motion in its report. Nintendo Switch 2 Pro Controller: Full is the pad as it appears over USB, with the gyro, the accelerometer and rumble. Steam reads it, and so does a program whose SDL is built with libusb. Every other program sees a gamepad that never reports, as it does with the real pad on Windows.

Nintendo virtual controller with the Switch Pro preset

A Steam Deck, or a Steam Controller from either year.

An Extended slot can present a Steam Deck Controller, a Steam Controller (Wired), which is the 2015 pad, or a Steam Controller (2026), plus Composite variants of the first two. Each carries Valve’s own vendor and product IDs rather than a stand-in. The Composite and 2026 profiles pack Valve’s native input frame, both trackpads and the rear buttons included, and a one-to-one automap lands a real Valve pad’s controls straight across. The plain Steam Deck Controller profile carries the identity with a standard gamepad frame. In the 3D preview, the two Steam Controller bodies are meshed from Valve’s own published CAD. The Deck’s body comes from Handheld Companion.

A SteamVR hand pair, driven by whatever you already own.

The VR slot type presents a left and a right hand to SteamVR, so a gamepad, a flight stick, a keyboard, or a phone over Wi-Fi can drive them. One slot serves both hands, so there is no left slot and right slot to keep in sync. Every stick, trigger, grip and button is a mapping target, and triggers and grips stay genuinely analog rather than collapsing to on and off. When a game buzzes a hand, that pulse comes back out through the physical device driving the slot.

PadForge installs the SteamVR runtime itself if you do not have it, with no Steam account and no Steam client, to a folder you pick.

Stated plainly, because it decides whether this is useful to you: PadForge does not fabricate positional tracking. The driver parks both hands a fixed distance in front of the headset, so they follow where you look. What you get is the controls. One VR slot is the ceiling, and SteamVR’s own Test Controller is not a reliable way to check one.

The VR slot preview showing both hands

Thirteen profiles that work on whatever pad you plug in.

Pick a starter profile, assign any controller, and play. They cover a kind of game rather than a single title: Desktop, WASD and Mouse, Point and Click, Strategy, Isometric RPG, Twin-Stick, Media Remote, Hotbar, Fighting Games, Emulation, Racing, Space Sim, and Gyro Aim. Nothing is locked, so saving one adds an ordinary profile you can edit.

They never name hardware, which is why one profile drives a DualSense, an Xbox pad, and a Switch Pro Controller the same way. Every profile that moves a cursor offers the touchpad and the stick at once: the stick moves it as a rate, and the moment a finger lands on the pad the cursor goes where the finger is. Hotbar puts thirty-two abilities behind two triggers, eight per trigger with sixteen more on a double tap. Fighting Games ships SOCD cleaning set to Neutral on both axes and binds exactly one directional surface, which is what tournament rules require. Emulation puts save states, rewind, and fast-forward behind a held Back, the way RetroArch’s own hotkey modifier works, and mirrors the left stick onto the D-pad for cores that have no analog sticks at all.

The starter profile gallery

Borrow a controller layout from the Steam Workshop.

Point PadForge at a game and it browses the community controller configs published on the Steam Workshop, then translates the one you pick into a PadForge profile: buttons, sticks, triggers, keyboard and mouse bindings, shift layers, and macros. The connection to Steam is anonymous, so no account and no login. It stays off until you enable community config lookup in Settings, and an import report shows what came across cleanly and what needed a substitute.

Steam Workshop config browser

Caps Lock for your controller.

Each slot can carry extra mapping tables that turn on while a button, chord, or axis fires. Six activation modes: Hold, Toggle, Latch, Cycle, Sticky, and No Button. Latch presses a layer on and leaves it on. Press it again for Base, or press a different Latch button to switch. Cycle puts a queue of layers under one control. The activator steps forward, a second Previous button steps back through the same list, and that Previous button can sit on another device. Wrap Around loops past the last layer to the first. Include Base folds the resting layer into the rotation or leaves it out. A No Button layer has no activator of its own and exists only to ride a Cycle queue. Each layer carries its own color and emoji icon, and a Win11-style flyout confirms the active layer the moment it engages.

Tap for one thing, hold for another.

A shift-layer button can wait for a long press. Set a hold-to-fire delay on a Toggle, Latch, or Sticky activator, and a quick tap does its normal job while a hold flips the layer. An activator can also fire on release instead of on press, so the layer flips when you let go. A Toggle layer can also cancel itself: leave it untouched for the time you set and it drops back to Base on its own, so you never get stranded on the wrong layer.

A macro that changes the layer.

A Switch Layer action jumps the slot to Base or to any layer you have authored, and the layer holds until another switch, a Latch or Cycle activator, or a profile change. A shift activator can carry an Only While in Layer condition of its own, so the input counts only while the layer you name is engaged. The check happens when the input goes down and holds for the whole press, so an activator that changes the layer cannot cut its own press short. Scope a Switch Layer macro to a layer and the same button jumps somewhere different from each one.

Move the mouse, move the stick.

Two new mapping sources, Mouse Position X and Mouse Position Y, read where the desktop cursor sits on screen. Center reads zero, and distance from center pushes the stick toward its edge. (That differs from the Mouse Speed X/Y sources, which read how fast the mouse moves.) Each row using a Mouse Position source gets its own Sensitivity, from 0.1 to 5.0. At 1.0 the stick reaches full deflection when the cursor sits 10% of the screen width from center. Raise it for less cursor travel, lower it for more. A Mouse Position source can drive a stick axis, a trigger, or a button. Primary monitor only.

Flick the mouse. Fire an action.

Hold any mouse button and flick. Up, down, left, and right each fire their own action, and a click while you hold fires a fifth. Bind a flick to a button press, a macro, or a shift layer. A three-button mouse turns into a small command pad. A recorded Custom button can arm the gestures too, so a keyboard key or a pad button holds the gesture state instead of a mouse button.

Mouse gesture bindings

Left and right at once? Pick a winner.

Press two opposite keys together and SOCD cleaning decides what the Keyboard & Mouse controller reports. Last-wins (Snap Tap) takes the key you pressed most recently, first-wins holds the one you pressed first, and neutral cancels both. It runs across every key you’ve mapped, so left/right and up/down both stay clean. The same cleaning also runs on virtual controller buttons: any slot can define opposing button pairs and resolve them with the same three rules.

SOCD cleaning modes on the Keyboard & Mouse controller

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

A Touchpad tab on every slot whose source carries a touchpad surface (DualSense, DualSense Edge, DS4, Steam Controller, Steam Deck, Steam Controller 2026, Web Controller, on-screen Touchpad Overlay, Windows Precision Touchpad). Map a finger to mouse X/Y with per-axis sensitivity and invert, and pick a Pointer Response: Simple, or a Trackpad curve that moves the cursor the way a laptop touchpad does. Anchor a virtual analog stick where your finger lands. Drop a wedge-thresholded D-pad on top. The gesture stack covers 4-way and 8-way swipes, taps, longpress, pinch, rotate, two- to five-finger gestures, and shape templates (Square, Triangle, Z, Checkmark, and Circle in either direction). Pressure-sensitive pads expose per-finger pressure as mapping sources, and swipe haptics tick the pad as your finger travels. Every toggle saves per pad per slot.

Touchpad tab

A macro that types for you.

Drop a Text Block into a macro’s action sequence and it types out plain text, one character at a time, at a delay you set. Bind it to a button and a chat line, a spawn command, or a wall of config drops in without touching the keyboard.

Text Block macro action

A menu cell that runs a macro, drawn with your icons.

A slot’s radial and grid menus put a page of actions under one button, and a cell can run a macro instead of pressing a button. The icons are yours to supply: an icon package is one zip of PNG, JPG, BMP, or GIF images with a .pficons extension, added from the Icon Packages card on the Menus tab. PadForge reads straight from the file and never unpacks it, so keeping a package next to PadForge.exe keeps the setup portable. SVG is not read.


Feel: your wheel fights back.

Plug a Logitech, Fanatec, or Thrustmaster wheel into a slot and PadForge drives its force feedback in the wheel’s own native protocol: constant force plus spring, damper, and friction straight from the game. A dedicated Wheel tab sets rotation range in degrees, auto-center strength, and the RPM shift LEDs. A racing game that only knows how to talk to an Xbox pad now loads your wheel up with real road feel.

Wheel tab

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

Rumble you can sit on.

The Bass Shakers tab routes the game rumble and force feedback a virtual controller receives to any audio output as low-frequency tones, for bass shakers and subwoofers. Four voices (low motor, high motor, left and right trigger) each carry their own frequency from 20 to 120 Hz and gain, with a mono or controller-stereo channel split and a frequency sweep to find where your shaker responds strongest. Game feedback and test rumble play through the shaker. Macro rumble stays on the controller.

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. Fourteen lightbar modes, six of them tied to your system audio (three Audio Pulse variants, three Audio Bands variants). The lightbar and adaptive triggers work in games that have never heard of a DualSense.

Adaptive Triggers tab Lighting tab

Game mods made for DSX, with no DSX.

Fan mods give the Grand Theft Auto games, Red Dead Redemption 2, Skyrim, Fallout 4 and others adaptive triggers, and they send their effects to a program named DSX. PadForge takes DSX’s place. Turn on Accept DSX Game Mods, and a mod’s trigger effects, lightbar, player lights and mute light play on the PlayStation controllers on your virtual controllers, with no DSX installed. Mods written for DualSenseY, DSZ or the DS4Windows fork that speaks the same protocol work too.

The Game Mods section on the Dashboard

A Novint Falcon that pushes back.

The Novint Falcon’s handle moves in three dimensions and pushes back with three motors. Through Force Dimension’s SDK, PadForge reads the handle as a stick and the grip’s four buttons as buttons, and puts a game’s rumble and force feedback on the handle as force, about a thousand times a second. Pick the Joystick feel for a self-centering stick or the Aim feel to aim like a mouse, on the Force Feedback tab.

The Novint Falcon card on the Force Feedback tab

Turn the glowing Xbox button up or down.

PadForge sets the Guide button LED brightness on an Xbox One, Elite, or Series pad over USB, the home LED on the 2015 Steam Controller, and the HOME button LED on a Switch Pro Controller or right Joy-Con on any connection. Pick a fixed level or let it track the battery, so the button dims as the charge drops. A macro action changes it mid-game.

Guide button LED brightness

The desk lights up with the pad.

Mice and keyboards light the way a DualSense does. Assign one to a virtual controller, turn on Control This Device’s Lighting on its Lighting tab, and it takes that controller’s lighting with the same modes a lightbar has: Player Number, Static, Breathing, Strobe, Rainbow, Color Cycle, Battery, the six audio modes, the input-reactive overlay and the lightbar macros. On a PlayStation virtual controller, a game that writes the lightbar takes over as it does on a DualSense. While its vendor’s software is closed, PadForge lights a device on its own, and each device shows its own virtual controller’s color. Logitech mice and keyboards light straight over HID++ where they report lighting feature 0x8070 or 0x8071, per-key keyboards included, and Battery mode reads their charge. A Logitech device that can be held more firmly gets a Lighting Hold picker, for one that dims its lights or shows its saved profile over the color. Razer mice, keyboards and keypads light through their own feature reports, 180 product IDs in all, and SteelSeries mice and keyboards through their control collection, 82 product IDs. A device Windows Dynamic Lighting drives lights through HID LampArray once Dynamic Lighting is turned off for it in Windows Settings. While G HUB, Logitech Gaming Software, Razer Synapse or SteelSeries GG runs, that program has its brand’s devices, and they light through it: Logitech’s LED engine, which PadForge loads rather than ships, the REST server Razer Synapse hosts, and GameSense in SteelSeries GG. Those three light every device of a kind at once, so when two virtual controllers light the same kind, the one with the smaller player number sets it. The Razer Chroma, Logitech LIGHTSYNC and SteelSeries GG rows appear on the Devices page once that software is installed. They light what PadForge does not read: Razer headsets, mousepads and Chroma Link strips, Logitech headsets, mousepads and speakers, and SteelSeries headsets. They also light any mouse or keyboard of their brand that no virtual controller lights on its own, and a device lit from its own Lighting tab outranks them whatever the player numbers. Turning off Control This Device’s Lighting stops that virtual controller from lighting the device, though a vendor row or another device of its kind can still set its color, and a Set Chroma Color macro on that virtual controller still paints a Razer device. Earlier versions mirrored the lightbar to Chroma and LIGHTSYNC from two Dashboard toggles, and a toggle that was on now assigns its row to the first DualSense or DualShock 4 virtual controller, if there is one.

Haptic mice rumble the way a gamepad does. Assign a Logitech MX Master 4, or a SteelSeries Rival 500, 700 or 710, to a virtual controller, and it takes that controller’s rumble through its own Force Feedback tab, the tab a gamepad gets. The MX Master 4 plays Logitech’s own haptic waveforms over HID++ and needs no Logitech software. The Rivals vibrate through the tactile handler in SteelSeries GG, which drives every Rival at once, so the one on the virtual controller with the lowest player number sets their rumble. A Logitech iFeel Mouse or iFeel MouseMan rumbles as well, once Play Rumble on This Mouse on the Devices page has moved it to Windows’ WinUSB driver. Windows then stops using it as a pointer until Restore the Windows Driver brings its own driver back, and PadForge moves the pointer from it while it is assigned to a Keyboard + Mouse virtual controller. Razer Sensa HD hardware works the same way through the Razer Sensa row, which appears on the Devices page once Razer Synapse is installed and plays through the Interhaptics engine bundled inside the executable.

Sound from the speaker in your hands.

The DualSense and DualShock 4 have a speaker built into the pad, and PadForge can drive it. Mirror a Windows audio output to the pad, or send a slot’s macro sounds straight to it. The DualSense plays over USB or Bluetooth. The DualShock 4 plays over Bluetooth, through its speaker or its headphone jack, with its headset microphone, and the second model (CUH-ZCT2) plays through its headphone jack on a cable too. Each speaker-capable pad gets its own per-slot Audio tab, with a source picker and a master volume. Controllers with haptic actuators instead of a speaker (Joy-Con, Switch Pro, the Steam Controller, the Steam Deck, and the Steam Controller 2026) play the same macro sounds as a vibrating tone, so beeps and short cues come through the grip. On a combined Joy-Con pair the tone follows the motor the game drives, left motor through the left coil and right through the right. A Wii Remote plays them through its own speaker.

The DualSense headset jack gets a processing chain of its own: bs2b crossfeed with the classic presets, Jan Meier, and a custom cutoff and feed, a graphic parametric EQ you drag into shape or load from an AutoEq profile for your exact headphones, and a limiter so a boosted band never clips the pad’s encoder. Follow Headphone Jack switches the pad’s output the moment you plug in, with or without a virtual DualSense on the slot.

Audio tab with crossfeed, the graphic EQ, and the limiter

Audio tab

Native haptics on the 2026 Steam Controller.

With a DualSense persona on the slot, a Steam Controller 2026 on USB or its dongle plays the persona’s authored haptic track as PCM on its own actuators, instead of reducing it to a single tone. Sound macros, the system-audio mirror, and touchpad swipe ticks ride the same stream. An actuator low-pass cutoff, 250 Hz by default, keeps the pads vibrating rather than audibly playing the sound. Over Bluetooth the pad stays on the tone lane.

DualSense haptics on every rumble pad.

Some games play a DualSense’s haptics as audio, which a plain rumble pad never felt. PadForge now turns that haptic track into rumble for every rumble pad on the virtual controller, and Bass Shakers follow it too. A DualSense that plays the track itself keeps it.


Motion: aim with the controller, not the sti

README 内容过长,已截取前 64 KB。完整内容请前往 GitHub 仓库查看。

评论

暂无评论