Skip to content

fix(zaparoo): keep menu snow visible without a frontend - #30

Merged
wizzomafizzo merged 1 commit into
masterfrom
fix/menu-snow-without-frontend
Oct 9, 2026
Merged

wizzomafizzo merged 1 commit into
masterfrom
fix/menu-snow-without-frontend

Conversation

@wizzomafizzo

@wizzomafizzo wizzomafizzo commented Oct 9, 2026 •

Copy link
Copy Markdown
Member
  • The Zaparoo menu core holds idle video black so a frontend start has no snow flash, and on its own shows snow only behind the OSD. Kiosk mode never opens the OSD, so with the frontend off the screen was black on boot, showed the background only while zaparoo_osd open was in effect, and went black again on close.
  • Main now sets menu status[10] whenever no frontend owns or is about to take the screen. The menu core reads it as permission to show snow.
  • zaparoo_menu_bg_init() writes the bit right after the saved menu status is loaded. F1 saves the whole status word, so a stale bit could otherwise flash snow ahead of a frontend start.
  • zaparoo_menu_bg_poll() runs from zaparoo_poll() and follows alt_launcher_menu_snow_allowed(): no frontend running, queued or respawning, and none waiting to resume after a script.
  • The same cause blanked the snow during the idle screensaver's first stage and after quitting the frontend under kiosk; both are covered.
  • Kiosk code is unchanged. ZAPAROO_FORK.md gains row 46.
  • Mismatched pairs behave as today: an older menu core ignores the bit, and the new core under an older Main stays black except behind the OSD.
  • Checked locally: ./docker-build.sh builds MiSTer_Zaparoo. Not tested on hardware.
  • Needs the matching menu core: fix: show snow when no frontend owns the screen Menu_MiSTer#8

Closes ZaparooProject/zaparoo-frontend#503

Summary by CodeRabbit

  • Bug Fixes
    • Menu background snow now follows frontend screen ownership, including when a script is running and the frontend is set to resume afterward.

The Zaparoo menu core holds idle video black so a frontend start has no
snow flash, and on its own shows snow only behind the OSD. Kiosk mode
never opens the OSD, so with the frontend off the screen stayed black.
Set menu status[10] whenever no frontend owns or is about to take the
screen, which the menu core reads as permission to show snow.
@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1e27da79-880d-4eb3-9188-152f45aa2daf
📥 Commits

Reviewing files that changed from the base of the PR and between 4fd04b8 and 67e0993.

📒 Files selected for processing (7)
  • ZAPAROO_FORK.md
  • support/zaparoo/alt_launcher.cpp
  • support/zaparoo/alt_launcher.h
  • support/zaparoo/menu_bg.cpp
  • support/zaparoo/menu_bg.h
  • support/zaparoo/save.cpp
  • user_io.cpp

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The change adds menu-background initialization and polling. The menu’s status bit 10 reflects whether snow is allowed, based on menu state and alternate-launcher screen ownership.

Changes

Menu background control

Layer / File(s) Summary
Alternate-launcher snow eligibility
support/zaparoo/alt_launcher.h, support/zaparoo/alt_launcher.cpp
Adds alt_launcher_menu_snow_allowed(). It returns false while the launcher owns the screen or is set to resume after a script.
Menu background status lifecycle
support/zaparoo/menu_bg.h, support/zaparoo/menu_bg.cpp, support/zaparoo/save.cpp, user_io.cpp, ZAPAROO_FORK.md
Adds menu-background initialization and polling. Initialization sets the initial snow state. Polling updates status bit 10 in the menu when the requested state differs from the cached state. The change map describes the status-bit behavior; its kiosk-mode entry is unchanged.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Sequence Diagram(s)

sequenceDiagram
  participant ZaparooPoll
  participant MenuBackground
  participant AltLauncher
  participant MainMenuStatus
  ZaparooPoll->>MenuBackground: zaparoo_menu_bg_poll()
  MenuBackground->>AltLauncher: alt_launcher_menu_snow_allowed()
  AltLauncher-->>MenuBackground: snow eligibility
  MenuBackground->>MainMenuStatus: update status bit 10 when state changes
Loading

Merge Risk: ⚪ Minimal · up to 67e09

No identified issue blocks merging after normal checks. The matching menu-core change and hardware behavior still need validation.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 6 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: keeping menu snow visible when no frontend owns the screen.
Linked Issues check Passed Issue #503 requires the kiosk menu background to remain visible when the OSD is closed. The change adds zaparoo_menu_bg_init() and zaparoo_menu_bg_poll(). Main initializes menu status bit 10 and u…
Out of Scope Changes check Passed The changed files support the same behavior from issue #503. alt_launcher_menu_snow_allowed() supplies frontend ownership state. menu_bg.cpp manages menu status bit 10. user_io.cpp initializes t…
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 6 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@wizzomafizzo
wizzomafizzo merged commit b158a3e into master Oct 9, 2026
1 check passed
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.

Kiosk mode issue with the latest update: Black screen on boot; when open osd command is sent then…

1 participant