Skip to content

README and site: real box art, a tighter top, every 1.0.2 feature - #53

Merged
tarikbc merged 17 commits into
mainfrom
pages-refresh
Nov 10, 2026
Merged

tarikbc merged 17 commits into
mainfrom
pages-refresh

Conversation

@tarikbc

@tarikbc tarikbc commented Nov 9, 2026

Copy link
Copy Markdown
Owner

The README and zyperos.com now show the games' real box art, and their tops are built to get someone from "what is this" to "Download" quickly.

Screenshots with real box art

  • tools/readme-shots.py --art fetches covers, title screens and screenshots from the libretro-thumbnails sets into a cache outside the repository (~/Library/Caches/zyperos-readme-art), and puts them on the demonstration card where the Scraper would. Without --art nothing is fetched and the checks that import the script are unchanged.
  • The demonstration card has well-known games on eight systems: PlayStation, NES, SNES, Game Boy, Game Boy Advance, Genesis, Nintendo 64 and Dreamcast. ROM files stay empty.
  • Metal Gear Solid's Cover and Video page shows its own boxes, title screen and screenshot. The in-game menu and Controls shots stand over a Spyro the Dragon screenshot. ScummVM's freeware games wear their covers. Video snaps are two seconds of each game's libretro screenshot, so the shelf shows its play marks.
  • New shots: shelf-n64, shelf-snes, favorites, and dark/shelf-n64 for the light-and-dark section.
  • Only the composed shots are committed. captures.json names every picture, its set and its checksum, and res/readme/README.md says the games and their art belong to their owners and ZyperOS ships neither.
  • The social card and the 3D device's poster now show the N64 shelf.

README

  • Top: the value line, a Download badge for the latest release, the N64 shelf as the hero, Why ZyperOS (six lines), Install in three steps, a <!-- demo-video --> placeholder, then the screens. The Name moved below Features.
  • Features: a new A way out of anything bullet (MENU + START, X quits). Every 1.0.2 feature is in the list.
  • Comparison: rows for Battery time left and A DS game's language, the same in both tables.

Landing page

  • Hero: Download ZyperOS 1.0.2 is the first button, Install in three steps the second, and a row of facts sits under them (1.6 s boot, 40 systems, 8 languages, GPL-3.0). The lockup is smaller, so the carousel starts higher.
  • The carousel (18 screens) opens on box art. Why ZyperOS and the three-step install now come right after it, with <!-- demo-video --> before What it does.
  • What it does covers Y from the start, the video on Cover and Video, A way out of anything and Developer Mode. Light and dark shows the N64 shelf and the home.
  • Title, description, JSON-LD (now with two screenshots), comparison table and FAQ links are kept. Footer links now wrap: on a 390 px phone they ran 150 px off the screen.

Other

  • The storage fixture's "Peter Pan" size became "Spyro", the game that replaced it on the PlayStation shelf.
  • set_favs no longer opens a library on a card that has none (the ScummVM card), which stopped a full run.

Checked

  • CHECK_JOBS=3 make check: 129 checks pass, check-blog and check-i18n-shots included.
  • I looked at the built site at 1440x900 and 390x844 in light, and at the README as GitHub renders it.

…2 feature

The screenshots now show the games' real box art: tools/readme-shots.py --art
fetches libretro-thumbnails' covers, title screens and screenshots into a cache
outside the repository (~/Library/Caches/zyperos-readme-art) and lays them on
the demonstration card the way the Scraper would. The card has well-known
games on eight systems, Metal Gear Solid's Cover and Video page shows its own
boxes and screenshots, the in-game menu stands over a Spyro screenshot, and
ScummVM's freeware games wear their covers. Only the composed shots are
committed; captures.json names every picture, its set and its checksum.
New shots: the Nintendo 64 and SNES shelves and Favorites, and the N64 shelf
in dark for the light-and-dark section.

README top: one value line, a Download badge for the latest release, the N64
shelf as the hero, Why ZyperOS, Install in three steps, a demo video
placeholder, then the screens. The Features list gains A way out of anything
(MENU + START, X quits). Comparison rows for battery time left and a DS game's
language, in both tables.

Landing page: Download as the first button, a row of facts under it, Why
ZyperOS and the three-step install right after the screens, the carousel led
by box-art shots, 1.0.2's features in What it does, the N64 shelf in Light and
dark, the social card and device poster on the N64 shelf, and footer links
that wrap on a phone (they ran 150 px past a 390 px screen).

The storage fixture's Peter Pan became Spyro, which the shelf now shows, and
readme-shots.py no longer opens a library on a card that has none.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Deploying zyperos with  Cloudflare Pages  Cloudflare Pages

Latest commit: c3ce319
Status: ✅  Deploy successful!
Preview URL: https://7a5f1a41.zyperos.pages.dev
Branch Preview URL: https://pages-refresh.zyperos.pages.dev

View logs

video/ makes it. footage/takes.py runs the host build headless on a sample
card with the games' real box art (libretro-thumbnails, cached outside the
repository) and records it: live takes press buttons through rec/rec.c, a
small library loaded with DYLD_INSERT_LIBRARIES that drives SDL's clock by
the frames drawn and writes every frame to ffmpeg at 60 a second, and shot
takes step the launcher's own --shot pictures for screens the host cannot
reach. Nothing in the launcher changes, and rec.c is not in its build.

Remotion puts the footage in the Pixel 2 model, straight on, beside the
site's own words, cut on the beat of The Arplands by LordZintick (CC0), one
of ZyperOS's menu music tracks, with the launcher's own interface sounds on
the presses.

site/zyperos-tour.mp4 (11 MB, 1080p, -16 LUFS) and its poster go on
zyperos.com in a new #tour section, and the README links its poster there.
Tarik found v1 slow and missing much of ZyperOS. v2 is 24 short beats of 2 to
5 seconds on The Arplands from its drums, navigation played at 1.5 to 2x,
the device whipping in and springing between poses, punch-ins on what
matters, and labels that rise word by word on the beat.

New footage, all the launcher's own: the Scraper fetching covers, the quick
save and load pop-ups, Wi-Fi File Transfer beside the page in a laptop and a
phone, a computer on the USB cable, the hotspot, the transfer ring over a
game, System Update from 1.0.1, Charge Limit and Time Left, MP4's lock, the
DS screen rows and Game Language, the empty card, light and dark side by
side, and MENU in all eight languages.
Tarik's note on v2: slow it down about 20%. Every beat holds a quarter
longer, rounded to whole beats of the music, so cuts stay on the grid; the
navigation speed-ups are a fifth lower (2x to 1.6x, 1.5x to 1.2x); the
springs, label words and whips are eased a little. Scenes, order, labels and
the music are as they were. A check in Root.tsx now stops a render whose
scene would run past the end of its footage.
Speed leads now: about 2 seconds from power on against the stock firmware's
30 to 40, my own count on my Pixel 2, and a game turned off with POWER is
back 2 seconds after the next start. In the README's top, the landing hero
and its facts row, and Why ZyperOS.

A new Coming from the stock OS? section in both: the boot time, back in the
game, and what the comparison's stock column doesn't show, each in a few
words, with keeping the stock card and copying games into Roms/.

Comparison, Boot time: ZyperOS keeps 1.6 s (note 4) and adds about 2 s from
power on; Stock gets 30 to 40 s from power on; a new note 5 says both are my
own count, the same way. Same in the site's table.
…deo snaps

Tarik picked Leap by nene (CC0, res/bgm) and asked for the motion to follow
it. Leap is exactly 156 BPM, a 104-bar loop; every scene now lasts whole bars
of it and sits on its sections: the full band for the opening, the power off
and on in the first break, back in the game on a downbeat, the video snap
turning on the next, the in-game menu in the calm bars, light and dark on the
theme's return at bar 52, and the end two beats past bar 68, the phrase end,
fading there.

Three new beats, all the launcher's own frames: the boot animation into the
home in 2 s beside a plain loading panel for stock firmware's 30 to 40 (my
own timing); POWER in a game, the power-off, POWER and the same frame 2 s
later; and a cover's bar filling and turning into its video snap, which the
host draws with rec/snapsub.c giving --snap's turn a frame of the snap.

The music is one setting, src/music.ts, and LICENSES.md has every menu
track's tempo and sections. The web file stays well under 25 MB (12 MB).
…raper snap

The snap is from my card, 2 s into its clip, played frame by frame where the launcher turns the cover; the clip stays outside the repository (video/README.md, A real video snap).
Tarik found the old 'no games yet' beat too short. Now it is six bars after the hotspot: the empty home and its two ways in, the games dropping in over File Transfer, and Zyper's cheer held at its height so it can be read. The bars came from Battery, MP4, PortMaster and the first start, so light and dark still lands on bar 52 and the end on bar 68.
@tarikbc
tarikbc merged commit 24ed6a2 into main Nov 10, 2026
2 checks passed
@tarikbc
tarikbc deleted the pages-refresh branch November 10, 2026 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant