Coverflow
RiptOPL's default theme โ a centered cover-art carousel with an alpha-faded reflection, animated scrolling between titles, and aspect-correct cover frames in both 4:3 and widescreen. It is a built-in theme: no files to copy, active out of the box.
<Coverflow> is compiled into RiptOPL and appears in the theme list alongside
any custom THM/ themes you add. You can switch to a different theme in
Display Settings โ Theme and switch back at any time. The Coverflow Settings
button only appears in Display Settings while a Coverflow-based theme is active.
How it works
When the <Coverflow> theme is active, the game list view shows a row of
cover-art images centred on the screen. The currently selected title sits at the centre; side
covers fan out to the left and right. Below each cover a mirrored, alpha-faded reflection is
drawn automatically. Scrolling left or right slides the entire carousel with a smooth animation;
the selection lands on the new title when the animation completes.
Covers are drawn inside a two-layer frame: a plastic-case layer (case)
sits over the raw cover art, and a second overlay layer (case_overlay) sits over
that, keeping the frame visually aligned regardless of cover art dimensions. The engine
keeps the frame aspect-correct automatically in both 4:3 and widescreen โ it does
not apply an extra widescreen scale on top of what the PS2 already does, so covers
never warp when widescreen is toggled.
The element type driving the carousel is type=Coverflow. The built-in theme
defines three variants of this element:
| Block | Used for | Box size | Default cover |
|---|---|---|---|
main2 | PS2 games | 184 ร 256 px (portrait) | cover |
appsMain2 | Apps | 184 ร 184 px (square) | coverapp |
vcdMain2 | PS1 / VCD games | 184 ร 184 px (square) | cover |
Apps and PS1 covers use a square box so the frame matches their square art; PS2 games use the taller portrait box that matches a standard PS2 case.
Coverflow Settings
Open Display Settings and press the Coverflow Settings button (it appears only when a Coverflow theme is active). Four options are available:
| Setting | Options | What it does |
|---|---|---|
| Cover Count | 3 / 5 | Number of covers shown simultaneously. 3 = one centre + one each side; 5 = one centre + two each side. |
| Center Scale | None / Small / Medium / Large | How much the centre cover grows relative to the side covers. None = all covers the same size. |
| Animation Speed | Off / Fast / Normal / Slow | Duration of the slide animation when the selection changes. Off = instant snap (0 ms); Fast = 100 ms; Normal = 200 ms; Slow = 400 ms. |
| Dim Side Covers | On / Off | When on, non-centre covers are drawn darker to focus attention on the selected title. |
These settings are saved to settings_riptopl.cfg under the keys
coverflow_count, coverflow_scale, coverflow_anim, and
coverflow_dim. They apply to any theme that uses a
type=Coverflow element โ not just the built-in one.
Cover art
The carousel pulls cover art from the ART/ folder on the active storage device
(same folder used by all OPL themes). Name your art files by Game ID:
ART/ SLUS_012.34_COV.png โ cover art (used by Coverflow) SLUS_012.34_SCR.png โ screenshot 1 (shown on the info page) SLUS_012.34_SCR2.png โ screenshot 2
If no matching cover is found the carousel shows the built-in cover placeholder
instead. Art is loaded into a shared texture cache. The cache is pre-sized internally (the
built-in carousel uses a fixed slot count) and is not user-configurable.
ART/ folder layout, artwork you already
have for stock OPL, uOPL, or wOPL works with RiptOPL's Coverflow carousel without any changes.
Authoring a Coverflow theme
You can create your own theme that uses the type=Coverflow element โ custom
background, fonts, colors, and overlay art, with the same live settings above. See
Theme Engine for the full authoring reference, including:
- The
type=Coverflowelement properties (default,overlay,overlay2,reflection,width/height, overlay corners) - The global
coverflow_cover_offsetkey for horizontal nudging of the whole carousel - Block family prefixes (
appsMain*,vcdMain*,favsMain*) for per-view overrides - The two-layer overlay system (
overlay+overlay2) used by the built-in case frame
The built-in theme's source, misc/theme_coverflow.cfg in the repository, is a
complete working reference you can copy and modify.
Config key reference
The Coverflow Settings are stored in settings_riptopl.cfg. For completeness,
the underlying keys and their value ranges:
| Config key | Type | Values | Notes |
|---|---|---|---|
coverflow_count | int | 3 or 5 | Visible covers in the carousel |
coverflow_scale | int | 0 / 15 / 30 / 45 | Centre-cover grow amount (0 = None, 15 = Small, 30 = Medium, 45 = Large) |
coverflow_anim | int (ms) | 0 / 100 / 200 / 400 | Slide duration (0 = Off, 100 = Fast, 200 = Normal, 400 = Slow) |
coverflow_dim | bool | 0 / 1 | Dim non-centre covers |
Where does the per-theme horizontal nudge live?
The coverflow_cover_offset key is a theme-level global property โ it lives
inside the theme's conf_theme.cfg, not in settings_riptopl.cfg. It shifts
the entire carousel left or right (range โ1024 to 1024, default 0). The built-in
<Coverflow> theme sets it to 0. If you author a custom theme and
need to reposition the carousel horizontally, set this in your conf_theme.cfg โ it does
not appear in the Coverflow Settings menu.