Game Carousel Screen - cressie176/Load64 GitHub Wiki

Primary Purpose

Get players into their chosen game with minimal friction.

Secondary Purpose

  • 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.

Main Screen Design

┌──────────────────────────────────────────────────────────────────────────────┐
│ 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                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

TOP 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

[Compilations] CTA

Navigates to the Compilation List screen to select a different compilation. On return, the carousel displays the selected compilation.

[Admin] CTA

Navigates to the Admin Hub screen.

CAROUSEL

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)

BOTTOM BAR

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

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

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.

Behaviour

  • 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.
⚠️ **GitHub.com Fallback** ⚠️