-
Notifications
You must be signed in to change notification settings - Fork 6
Home
hifihedgehog edited this page Mar 8, 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, or custom DirectInput 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) |
| 3D and 2D Visualization | Interactive controller model and schematic |
| Button and Axis Mappings | Mapping physical inputs to virtual outputs |
| Stick Dead Zones | Thumbstick dead zone, anti-dead zone, and response curves |
| Trigger Dead Zones | Trigger dead zone and range configuration |
| Force Feedback | Rumble passthrough, haptic fallback, and DirectInput FFB |
| Macros | Button combo triggers, action sequences, 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, 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 and overlay positioning |
| 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.