Repository navigation
A 105-second tour video, made from the launcher's own frames - #54
Merged
8 commits merged intoNov 10, 2026
Merged
8 commits merged into
8 commits merged into
Conversation
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.
Deploying zyperos with
|
| Latest commit: |
31f6e06
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://4113fb40.zyperos.pages.dev |
| Branch Preview URL: | https://video-refresh.zyperos.pages.dev |
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.
…usic is one setting
…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).
…OURCE, SNAP_GAME)
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A 105-second tour of ZyperOS for the README, zyperos.com and creators. Every screen in it is drawn by the launcher itself, on a sample library with the games' real box art, inside the Pixel 2 model. It is cut to Leap by nene, one of ZyperOS's own menu music tracks: every scene lasts whole bars, and the big moments land on its sections.
What it shows
How it is made
video/footage/takes.pyruns the host build (make native) headless. Live takes press buttons throughvideo/rec/rec.c, a small library loaded withDYLD_INSERT_LIBRARIES: it answers SDL's clock with the frames drawn, writes every frame to ffmpeg at 60 a second, and delivers the presses, so the motion is the launcher's own. Shot takes use the launcher's own--shotpictures (the in-game menu, the power-off, the charging screen, the first start, the video snap's bar and turn). The launcher does not change;rec.candsnapsub.care only invideo/.video/rec/snapsub.cgives--snap's turn the frames of a real snap in place of the test picture, one a shot. It is Symphony of the Night's ScreenScraper snap from my card, kept outside the repository;SNAP_SOURCEswaps it (video/README.md).res/readme/portal*.png, the page drawn in headless Chrome bytools/readme-shots.py.~/Library/Caches/zyperos-readme-artand never committed. The games and their art belong to their owners.video/src/music.tsholds the track;video/src/timeline.tslays the scenes on its bars. Leap is exactly 156 BPM, a 104-bar loop; the tour runs from bar 0 to two beats past bar 68, the phrase end before a break, fading there.video/LICENSES.mdhas every menu track's tempo and sections.Files
site/zyperos-tour.mp4(13 MB, 1920x1080, 30 fps, H.264, -16 LUFS) andsite/zyperos-tour.jpg, in the#toursection ofsite/index.html.res/readme/tour-poster.jpg, linked from the README tozyperos.com/#tour.<!-- tour-video -->blocks.Not shown
make checkpasses.