-
Notifications
You must be signed in to change notification settings - Fork 6
Dashboard
The Dashboard is PadForge's home screen. It shows engine status, virtual controllers, connected devices, and driver health at a glance.

Five vertically stacked sections:
| Section | Purpose |
|---|---|
| Input Engine | Master power switch and performance readout |
| Virtual Controllers | One card per [[Controller Slots |
| Motion Server | [[DSU Motion Server |
| Web Controller | [[Web Controller |
| Drivers | Installation status of optional [[Driver Management |
Missing drivers, disconnected controllers, and stopped engines all surface here.
The engine card sits at the top with four elements in a row:
| Element | Description |
|---|---|
| Power button | Starts/stops the engine. Color indicates state (see below). |
| Status text | "Running", "Stopped", or "Idle". |
| Polling frequency | Live polling rate in Hz (e.g., "987.3 Hz"). Dash when stopped. |
| Device count | Online vs. total (e.g., "2 / 3 devices online"). "Online" = plugged in now. "Total" includes remembered devices. |
| Color | Meaning |
|---|---|
| Green | Running and processing input |
| Yellow | Idle. Started but no slots exist yet |
| Red | Stopped. Virtual controllers inactive (red circle indicator) |
Tip: Enable "Auto-start engine on launch" in Settings to skip the manual power button click each time.
Each Controller Slots appears as a card below the engine card.
| Element | Location | Description |
|---|---|---|
| Power icon | Top-left | Slot status color (see below). Click to enable/disable. Uses the same TypeSwitchButton style as the type icons. |
| Gamepad icon + slot number | Next to power icon | Global controller number (1, 2, 3, ...). |
| Type icons | After separator bar | Xbox, PlayStation, Extended, Keyboard+Mouse, MIDI. Uses a custom TypeSwitchButton style with dark gray rounded hover and transparent border. Active type is bright; others dimmed. Click a dimmed icon to switch type. Unavailable types (missing driver) show a no-entry cursor and a tooltip explaining the requirement; clicks are guarded in code-behind. |
| Per-type instance number | After type icons | Instance within the type (e.g., "2" for the second Xbox slot). |
| Device name | Second row | Primary mapped device, or "No device". Long names scroll. |
| Status text | Third row, left | "Active", "Idle", "No mapping", or "Disabled". |
| Mapped / Connected counts | Third row, right | E.g., "2 mapped, 1 connected". |
| Delete button (X) | Upper-right | Removes this slot entirely. |
| Color | Condition | Tooltip |
|---|---|---|
| Green | Enabled, at least one mapped device connected | "Active" |
| Yellow | Enabled but blocked (no devices, engine stopped, or driver missing) | Shows reason |
| Flashing green | Initializing | "Initializing" |
| Red | Manually disabled | "Disabled" |
Dashboard cards have visual parity with sidebar mini cards. Matching button sizes, spacing, and hover style.
Click anywhere on a card (except delete/power) to open that slot's configuration: Button and Axis Mappings, Stick Deadzones, Trigger Deadzones, Force Feedback, and Macros.
Drag a card by its body to reorder slots within the same type group. The Xbox, PlayStation, Extended, Keyboard+Mouse, and MIDI groups each reorder independently; cross-type drops are ignored. The per-type instance number (the "2" on the second Xbox slot) updates immediately on drop. When a reorder shifts an active VC past another active VC running a different HIDMaestro profile, the affected slots rebuild so the kernel re-allocates them in the new visual order; same-profile shuffles and reorders that don't change the active-VC profile sequence are zero-flicker. See Controller Slots#what-rebuilds-on-reorder.
An Add Controller card appears at the bottom when at least one type has remaining capacity. Click it to pick a type. See Controller Slots for limits and management.
Disappears when all types are at capacity.
Broadcasts gyroscope and accelerometer data over UDP using the DSU/Cemuhook protocol. Emulators like Cemu, Dolphin, and Ryujinx use this for motion controls (e.g., gyro aiming).
| Control | Description |
|---|---|
| Enable DSU motion server | Starts/stops the server |
| Port | UDP port (default: 26760). Change only for conflicts. Range: 1024-65535. |
| Status indicator | Green dot when running, red dot when stopped (BoolToColorConverter returns red for false). |
The DSU protocol caps at 4 slots. Only the first 4 virtual controllers broadcast motion data.
See DSU Motion Server for full details.
Browser-based controller accessible from any device on your local network.
| Control | Description |
|---|---|
| Enable web controller | Starts/stops the web server |
| Port | HTTP/WebSocket port (default: 8080). Range: 1024-65535. |
| Status indicator | Green dot when running (shows a clickable local URL), red dot when stopped (BoolToColorConverter returns red for false). |
See Web Controller for full details.
Shows installation status of each optional driver: name on the left, status on the right.
| Driver / Service | Purpose | When to install |
|---|---|---|
| HidHide | Hides physical controllers from games (prevents double input). | Games receive duplicate input. |
| HIDMaestro | Creates virtual Xbox, PlayStation, and Extended (DirectInput) controllers from one user-mode driver. 225+ device profiles. | Required for Xbox, PlayStation, or Extended slots. Replaces ViGEmBus and vJoy from v2. |
| Windows MIDI Services | MIDI virtual controller output. Requires Windows 11 24H2+. | Sending MIDI to DAWs, synths, or VJ tools. |
Without a driver installed, its controller type icons are greyed out. Install or manage drivers from Settings.
- Installation: First-time setup guide
- Controller Slots: Add and manage virtual controllers
- Devices: View physical controllers and assign them to slots
- Settings: Configure the engine, appearance, and drivers
- Profiles: Per-application profile switching
- DSU Motion Server: Gyroscope streaming for emulators
- Web Controller: Browser-based virtual controller