Import Controls Screen - cressie176/Load64 GitHub Wiki

Primary Purpose

Review and configure the controls for the game being imported before completing the import.

Main Screen Design

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  Import Games > <Title> > Controls             [Add Player]  [Next]  [Back]  │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  LIST                                                                        │
│  ┌────────────────────────────────────────────────────────────────────────┐  │
│  │ > General Controls                                                     │  │
│  │   Player 1                                                             │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

TOP BAR

Focusable: [Add Player], [Next], and [Back] CTAs
Interactive: [Add Player], [Next], and [Back] CTAs
Purpose: Show the game being imported and provide player management and progression actions

The title displays Import Games > <Title> > Controls. See Import Candidate screen for the <Title> derivation rule.

[Add Player] CTA

Adds the next player by cloning Player 1's control definitions. Navigates to the Game Player Control List screen for the new player immediately after creation.

[Next] CTA

Navigates to the Import Profiles screen.

[Back] CTA

Returns to the previous screen.

LIST

Type: Single-selection vertical list
Focusable: Yes (primary focus region)
Interactive: Yes
Order: General Controls first, then Player 1, Player 2, etc.
Purpose: Navigate to controls for each player or the general controls

General Controls and Player 1 are always present.

Row Behaviour
General Controls Navigate to the Game General Control List screen
Player <n> Navigate to the Game Player Control List screen

Context Menu

Only available on Player rows. Not available on General Controls.

Action Behaviour
Remove Player Only shown on the last player row. Opens a confirmation overlay before removing that player and all their control assignments.

Remove Player confirmation overlay:

┌──────────────────────────────────────────────────────────────────────────────┐
│                    ┌──────────────────────────────┐                          │
│                    │ Remove Player <n>?           │                          │
│                    │                              │                          │
│                    │   > Yes                      │                          │
│                    │     No                       │                          │
│                    └──────────────────────────────┘                          │
└──────────────────────────────────────────────────────────────────────────────┘
Option Behaviour
Yes Remove the player and all their controls and return focus to the list
No Close the overlay and return focus to the list

BOTTOM BAR

Focusable: No
Interactive: No
Purpose: Display confirmation messages after adding or removing a player

After adding a player:

├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
│  Player <n> added                                                            │
└──────────────────────────────────────────────────────────────────────────────┘

After removing a player:

├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
│  Player <n> removed                                                          │
└──────────────────────────────────────────────────────────────────────────────┘

Initial State

On entry, the screen is pre-populated as follows:

  • General Controls — empty unless the ROMSet was recognised by the LoadC64 Catalogue and general controls are available for this game.
  • Player 1 — pre-populated with the six default joystick controls: Move Up (up), Move Down (down), Move Left (left), Move Right (right), Fire (fire), Space (space). If the ROMSet was recognised and player controls are available from the LoadC64 Catalogue, those are used instead of the defaults.

The user may edit, add, or remove controls before proceeding. Selecting [Next] without making changes proceeds with the pre-populated defaults.

⚠️ **GitHub.com Fallback** ⚠️