top of page
loading_reduced.jpg

2.4.1 / 15-04-2026

No ratings yet

Performance

No ratings yet

Features

No ratings yet

PadForge

Accuracy

competition

Modern fork of x360ce built with SDL3, ViGEmBus, vJoy, Windows MIDI Services, HelixToolkit, .NET 10 WPF, and Fluent Design. Turn any input device into any virtual controller:
Gamepads, joysticks, keyboards, mice, and touchscreens — mapped to Xbox 360, DualShock 4, DirectInput, MIDI, or Keyboard+Mouse output that games treat as real hardware.


--2.4.1--

Add Controller Popup
Theme-aware — background and icons follow dark/light theme
Live theme updates — popup background updates instantly when theme changes while open
Dismiss on outside click — clicking anywhere outside the popup closes it
Cleaner shadow — separate shadow element pattern eliminates corner artifacts

Touchpad Overlay
Opacity 0% — slider and number field now allow fully transparent
Reset buttons added next to DSU port, Web port, and Opacity fields
Wider port fields (140 → 160px) so 5-character port numbers don't get clipped
Updated description — "On-screen touch surface for DualShock 4 and DualSense-compatible touchpad emulation" (10 languages)

DSU Motion Server
Updated terminology — "cemuhook" → "CemuHook Motion Provider protocol" (10 languages)

Code Quality
WebControllerDevice.RawButtonCount now respects touchpad-only device flag
Removed redundant null check in DevicesViewModel
Removed redundant empty-string check in InputManager.Step3.ParseDescriptor


--2.4.0--
Profile Shortcuts
Switch profiles via controller button combos — assign Next, Previous, Specific, or Toggle Window actions to any button/axis combination
Cross-device combos — combine buttons from different controllers (e.g., Guide on gamepad + pedal on flight stick)
Axis direction triggers — use stick/trigger directions as shortcut inputs (e.g., Guide + LX left = Previous, Guide + LX right = Next)
5-second recording with live preview and countdown — press Record, hold your combo, auto-commits on timeout
Toggle Window shortcut — minimize/restore PadForge from a controller without touching the keyboard; forces to foreground even over fullscreen apps
Device filtering — trigger from Any Device or a specific controller

Profile Switch Flyout
Win11-style notification above the taskbar when profiles switch — pixel-matched to the native volume OSD
Four-stage flow: Profile Name → Initializing (flashing icon) → Active (accent checkmark) → auto-dismiss
Offline warning: "One or more controllers offline" with amber icon when devices are missing
Slide animation — slides up from the taskbar edge and down on dismiss
Theme-aware — follows system dark/light theme

DS4 Touchpad Support
Multi-source touchpad input — SDL3 gamepad touchpad, Precision Touchpad (PTP), touchscreen overlay, and web controller all feed into DS4 virtual controller via DS4_REPORT_EX
Touchscreen overlay — on-screen touchpad surface for touch devices, draggable and resizable
Web controller touchpad — touch zone on the web controller page for remote touchpad input
Devices page touchpad preview — live finger position and contact visualization
Precision Touchpad reader — captures PTP trackpad input via WM_INPUT for touchpad-to-DS4 passthrough

WPF UI Migration
ModernWPF 0.9.6 → WPF UI 4.2.0 — full migration to actively maintained Fluent Design framework
App branding bar with custom fullscreen button and native Win32 tooltip
Compact sidebar — 48px items, 15px font, Windows 11 design language
Dashboard card polish — drag stability at high DPI, power button hover, visual parity with sidebar

SDL GUID in Mapping Submission
Devices page shows SDL GUID — needed for gamecontrollerdb mapping submissions (VID/PID alone can't build the CRC-based GUID)
Submission workflow includes SDL GUID in the generated issue template

Force Feedback Fixes
Fix directional data loss — Step2 was dropping FFB direction data, routing all effects to scalar rumble
Motor split direction convention — polar direction correctly maps to left/right motor split
FfbTest tool — standalone build, .NET 10, interactive polar direction control

Map All Toggle
Single toggle button — "Map All" switches to "Stop" while active, replacing the separate stop button
Both tabs — works on Preview and Mappings tabs

Bug Fixes
Fix fullscreen state not restoring from tray or minimize
Fix fullscreen button foreground stuck on light theme when starting minimized to tray
Fix overlay crash on shutdown — stop timers before closing window
Fix KBM mappings missing from HasAnyMapping, ClearMappingDescriptors, GetAllMappingDescriptors (KBM-only slots excluded from Copy From dialog)
Fix window position/size/maximized state not persisting across restarts
Fix DS4 touchpad macro ignored (#51)
Fix mouse handle mismatch after PTP registration
Fix 2D controller view crash — pack URI scheme failure
Fix device identity confusion in same XInput slot
Fix WPF GPU device loss on sleep/wake
Spelling & Localization
Standardize "deadzone" — updated from "dead zone" to match Microsoft's official gaming terminology across all code, UI strings, documentation, and wiki (10 languages)
Rename "Awaiting Controllers" → "Awaiting Devices" — technically accurate since assigned inputs may not be controllers
Code Quality
Remove duplicate FormatExePaths method
Fix misplaced XML doc on SwapSlots/MoveSlot
Rename QueueProfileSwitch → HandleGlobalMacroAction
Remove unused DashboardViewModel.ViGEmVersion
Clean up stale fields and missing null cleanup

Show Previous Changes

...More to be added

bottom of page