Controller List Screen - cressie176/Load64 GitHub Wiki

Primary Purpose

View and manage controller configurations for connected and previously configured devices.

Secondary Purpose

  • Clear a controller configuration back to unconfigured state
  • Delete a controller configuration

The Controllers screen is reached from the Admin Hub. Each row represents a controller model identified by its hardware GUID, not an individual physical device. If two controllers of the same model are connected, they share one configuration row. The Count column reflects how many physical devices of that model LoadC64 is aware of.

Main Screen Design

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  Controllers                                                         [Back]  │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  LIST                                                                        │
│  ┌────────────────────────────────────────────────────────────────────────┐  │
│  │   Device              Family              Count  Connected  Configured │  │
│  ├────────────────────────────────────────────────────────────────────────┤  │
│  │ > USB Gamepad         —                       1          1  No         │  │
│  │   DualShock 4         Sony DualShock          1          0  Yes        │  │
│  │   Logitech Dual Act…  Logitech                2          1  Yes        │  │
│  │   Xbox Wireless Ctrl  Microsoft Xbox          1          1  Yes        │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

When no controllers are connected and none have been previously configured:

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  Controllers                                                         [Back]  │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Connect any controllers you want to configure.                              │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

TOP BAR

Focusable: [Back] CTA only
Interactive: [Back] CTA only
Purpose: Identify the current screen

[Back] CTA

Returns to the previous screen.

LIST

Type: Single-selection vertical list
Focusable: Yes (primary focus region)
Interactive: Yes
Order: Connected controllers first, then alphabetically by device name within each group (Connected, Unconnected)
Purpose: Browse connected and previously configured controllers; select one to configure or edit

The list combines two sources:

  • Connected controllers — all devices currently detected via HID, whether already configured or not.
  • Disconnected configured controllers — devices with an existing configuration that are not currently connected.

The list updates automatically as controllers are connected or disconnected.

Each row shows:

  • Device name
  • Family: the assigned controller family name, or if none
  • Count: total count of physical devices of this model LoadC64 is aware of
  • Connected: number of devices of this model currently detected via HID
  • Configured: Yes if a configuration exists for this device, No otherwise

Row behaviour by state:

Connected Configured Can Configure Can Delete Can Clear Behaviour on selection
> 0 Yes Yes No Yes Navigates to Controller Detail
> 0 No Yes No No Auto-creates a configuration from HID data and navigates to Controller Detail
0 Yes No Yes Yes
0 No No Yes No

Context Menu

Action Availability Behaviour
Clear Configured controllers only Opens the Clear confirmation overlay
Delete Disconnected configured controllers only Opens the Delete confirmation overlay

Clear resets the controller back to unconfigured state, discarding all control mappings and environment variables, but keeps the row visible if the device is still connected. Use Clear when you want to reconfigure a connected controller from scratch. Use Delete to remove a disconnected controller's record entirely.

Clear confirmation overlay (single device):

┌──────────────────────────────────────────────────────────────────────────────┐
│                    ┌──────────────────────────────┐                          │
│                    │ Clear <Device Name>?         │                          │
│                    │                              │                          │
│                    │   > Yes                      │                          │
│                    │     No                       │                          │
│                    └──────────────────────────────┘                          │
└──────────────────────────────────────────────────────────────────────────────┘

Clear confirmation overlay (multiple devices):

┌──────────────────────────────────────────────────────────────────────────────┐
│                    ┌───────────────────────────────┐                         │
│                    │ Clear <Device Name>?          │                         │
│                    │                               │                         │
│                    │ <n> devices will be affected. │                         │
│                    │                               │                         │
│                    │   > Yes                       │                         │
│                    │     No                        │                         │
│                    └───────────────────────────────┘                         │
└──────────────────────────────────────────────────────────────────────────────┘
Option Behaviour
Yes Reset the controller to unconfigured state and return focus to the list
No Close the overlay and return focus to the list

Clearing a controller permanently deletes all of its control mappings and environment variables.

Delete confirmation overlay:

┌──────────────────────────────────────────────────────────────────────────────┐
│                  ┌────────────────────────────────────┐                      │
│                  │ Delete <Device Name>?              │                      │
│                  │                                    │                      │
│                  │ 1 of <n> devices will be affected. │                      │
│                  │                                    │                      │
│                  │   > Yes                            │                      │
│                  │     No                             │                      │
│                  └────────────────────────────────────┘                      │
└──────────────────────────────────────────────────────────────────────────────┘
Option Behaviour
Yes Delete the controller configuration and return focus to the list
No Close the overlay and return focus to the list

Deleting a controller also permanently deletes all of its control mappings and environment variables.

BOTTOM BAR

Focusable: No
Interactive: No
Purpose: Display confirmation messages after clearing or deleting a controller configuration

After clearing a controller configuration (single device):

├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
│  <Device Name> cleared                                                       │
└──────────────────────────────────────────────────────────────────────────────┘

After clearing a controller configuration (multiple devices):

├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
│  <Device Name> cleared (<n> devices affected)                                │
└──────────────────────────────────────────────────────────────────────────────┘

After deleting a controller configuration:

├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
│  <Device Name> deleted                                                       │
└──────────────────────────────────────────────────────────────────────────────┘
⚠️ **GitHub.com Fallback** ⚠️