-
Notifications
You must be signed in to change notification settings - Fork 6
Home
hifihedgehog edited this page Mar 13, 2026
·
63 revisions
Welcome to the PadForge wiki — the complete reference for users and developers.
PadForge is a modern controller mapping utility for Windows. It maps any controller, keyboard, or mouse to virtual Xbox 360, DualShock 4, custom DirectInput, MIDI, or Keyboard+Mouse controllers that games see as real hardware.
Everything you need to get started and master PadForge.
| Page | Description |
|---|---|
| Installation | Download, requirements, and first launch |
| Dashboard | The main overview screen |
| Controller Slots | Adding and configuring virtual controllers (Xbox 360, DS4, DirectInput, MIDI, Keyboard+Mouse) |
| 3D and 2D Visualization | Interactive controller model, schematic, and keyboard+mouse preview |
| Button and Axis Mappings | Mapping physical inputs to virtual outputs |
| Stick Dead Zones | Thumbstick dead zone shapes, anti-dead zone, sensitivity curves, and response settings |
| Trigger Dead Zones | Trigger dead zone, range, and sensitivity curve configuration |
| Force Feedback | Rumble passthrough, haptic fallback, and DirectInput FFB |
| Macros | Button combo triggers, action sequences, mouse output, volume control, and custom DirectInput buttons |
| Profiles | Per-application automatic profile switching |
| Devices | Physical device list and raw input state viewer |
| DSU Motion Server | Gyro and accelerometer broadcasting for emulators |
| Web Controller | Use any touchscreen device as a virtual controller via the browser |
| Settings | Appearance, input engine, window options, HidHide whitelist, and MIDI configuration |
| Driver Management | Installing and uninstalling ViGEmBus, HidHide, vJoy, and Windows MIDI Services |
| Input Precision | Flight-sim-grade polling, axis fidelity, and dead zone math |
| Troubleshooting | Common problems and solutions |
Deep technical documentation for contributors and developers who want to understand or fork PadForge.
| Page | Description |
|---|---|
| Architecture Overview | Solution structure, project layout, and design philosophy |
| Input Pipeline | The 6-step polling loop from physical input to virtual output |
| SDL3 Integration | SDL3 device enumeration, gamepad API, sensors, and haptics |
| Virtual Controllers | Xbox 360, DualShock 4, DirectInput (vJoy), and MIDI output implementations |
| vJoy Deep Dive | HID descriptors, FFB, device node management, and registry |
| Settings and Serialization | PadForge.xml format, PadSetting, UserDevice, UserSetting |
| Services Layer | InputService, SettingsService, DeviceService, RecorderService, WebControllerServer, DsuMotionServer, ForegroundMonitorService |
| ViewModels | MVVM data binding, observable properties, and commands |
| XAML Views | WPF pages, controls, templates, and converters |
| 3D Model System | HelixToolkit integration, OBJ loading, and animation |
| 2D Overlay System | Controller schematic rendering, overlay positioning, and keyboard+mouse preview |
| DSU Protocol Implementation | Cemuhook UDP protocol, packet formats, and axis mapping |
| Driver Installation Internals | ViGEmBus, HidHide, and vJoy install/uninstall flow |
| Engine Library | PadForge.Engine data types, SDL3 interop, and device wrappers |
| Build and Publish | Building, publishing, and release workflow |

Built with SDL3, ViGEmBus, vJoy, HelixToolkit, .NET 10 WPF, and Fluent Design.