Game Carousel Screen - cressie176/Load64 GitHub Wiki
Get players into their chosen game with minimal friction.
- Navigate to Game Details for more information and options
The Game Carousel is controller friendly and keyboard efficient. It is the entry screen for LoadC64 and opens on the last viewed compilation, defaulting to All Games on first launch.
┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR │
│ <Compilation Name> [Compilations] [Admin] │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ CAROUSEL │
│ ┌──────────────┐ │
│ ┌─────────┐ │ │ ┌─────────┐ │
│ ┌───────┐ │ │ │ │ │ │ ┌───────┐ │
│ │ │ │ │ │ SELECTED │ │ │ │ │ │
│ │ Box │ │ Box │ │ Box │ │ Box │ │ Box │ │
│ │ Cover │ │ Cover │ │ Cover │ │ Cover │ │ Cover │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ └───────┘ │ │ │ │ │ │ └───────┘ │
│ └─────────┘ │ │ └─────────┘ │
│ └──────────────┘ │
│ │
│ <Title> - <Publisher> - <Year> │
│ │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ <Launch options or blocking reason> │
└──────────────────────────────────────────────────────────────────────────────┘
The carousel should appear as a 3D carousel / Perspective carousel where the selected game appears closer than the immediate next and previous game, and those games appear closer than the ones to their respective left / rights. The exact number of games on visible in the carousel is responsive. The Game Title, Publisher and Year for the currently selected game is displayed centrally below the carousel. The Publisher and Year are omitted if unknown.
If the library contains no games:
┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR │
│ All Games [Compilations] [Admin] │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ No games in your library. Select Admin to import games. │
│ │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
└──────────────────────────────────────────────────────────────────────────────┘
If the active compilation contains no games:
┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR │
│ <Compilation Name> [Compilations] [Admin] │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ No games in this compilation. Select Compilations to switch compilation. │
│ │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
└──────────────────────────────────────────────────────────────────────────────┘
Focusable: [Compilations] and [Admin] CTAs only
Interactive: [Compilations] and [Admin] CTAs only
Purpose: Display the active compilation name and provide access to compilation selection and administration
Navigates to the Compilation List screen to select a different compilation. On return, the carousel displays the selected compilation.
Navigates to the Admin Hub screen.
Type: Horizontal scrolling carousel
Focusable: Yes (primary focus region)
Interactive: Yes
Constraints: Single selection; loops infinitely in both directions; centred game rendered larger
Order: Alphabetically by sort title within sections (0-9 → A → B → … → Z → wrap)
Purpose: Browse and select games
The carousel renders the active compilation. The centred game is the current selection and is rendered slightly larger for emphasis.
The user can always proceed from the carousel to the Game Details screen, even for unlaunchable games. Direct launch actions (Quickstart, Load ROM, Continue) may also be available from the carousel. If the requested launch option is unavailable, navigation is prevented and the reason displayed in the bottom bar.
For game navigation see Game List Navigation.
Launch actions:
| Action | Controller | Keyboard | Behaviour |
|---|---|---|---|
| Game Deatils | Button South | Enter | Open Game Details screen |
| Quickstart | Button East | Option+Enter (Apple), Alt+Enter (Microsoft and Linux) | Launch the game from the quickstart snapshot. |
| Load | Button West | CTRL+Enter | Launch the game from the first ROM |
| Continue | Button North | Shift+Enter | Continue (most recent non-quickstart snapshot) |
Focusable: No
Interactive: No
Purpose: Display metadata for the selected game, available launch options, or the reason a game is unlaunchable
The bottom bar shows the game's title, publisher, and year, followed by available launch options or a blocking reason. Long values are truncated per the standard truncation behaviour defined in User Experience.
Launchable games show the available direct launch actions in the bottom bar.
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ <Available Launch Actions> │
└──────────────────────────────────────────────────────────────────────────────┘
Modified Enter combinations execute direct launch actions from the carousel.
<Available Launch Actions> a ◆ separated list of Launch Actions.
- The controller input is the name of the control which maps to the Controls canonical name, i.e. Button South = 'A'
- If a controller is connected but not configured, use the canonical name
- If multiple controllers are connected use the first controller
- If no controllers are connected omit the controller input altogher
- The keybaord shortcut may be OS dependent
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ Load: B or CTLR+Enter ◆ Continue: Y or Shift+Enter │
└──────────────────────────────────────────────────────────────────────────────┘
If the requested launch option is unavailable (missing ROM, no save, no quickstart snapshot), do not navigate — display a clear message in the bottom bar.
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ <Reason> │
└──────────────────────────────────────────────────────────────────────────────┘
Unlaunchable games remain visible in compilations.
Visual treatment:
- "Out of Order" overlay across the box cover
- Box cover transparency, darkening, blurring, etc
- Bottom bar displays the blocking reason
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ <Reason> │
└──────────────────────────────────────────────────────────────────────────────┘
Enter still opens Game Details for unlaunchable games. Direct launch actions are blocked.
- If any admin warning condition is true (games directory not set, a system binary not configured, a connected controller not configured, or no games in the library), LoadC64 opens the Admin Hub screen instead of the carousel on startup.
- The carousel opens on the last viewed compilation. On first launch it defaults to All Games.
- The last known position within each compilation is restored when returning to that compilation.
- If the library contains no games, the carousel is not shown and a message directs the user to Admin to import games.
- If the active compilation contains no games, the carousel is not shown and a message directs the user to select a different compilation.
- Escape does nothing. This screen has no parent.