Skip to content

menu.rbf beta — colour on subcarrier boards

Pre-release
Pre-release

Choose a tag to compare

@Dino-fly Dino-fly released this 14 Aug 07:46
· 61 commits to classic-ui since this release

menu.rbf beta — colour on subcarrier boards

For testing on vga_mode=subcarrier hardware (SuperStation One and other
boards with their own encoder chip). One file, menu core only.

What this fixes

On a vga_mode=subcarrier machine the games are full colour but the Classic
Home shelf is black and white. A SuperStation One owner traced it to
sys/sys_top.v: the 3.58 MHz colour reference the external encoder needs is
gated with & ~vgas_en, and the shelf can only reach the analog pins through
the scaler — so the reference goes flat exactly when the front-end is on
screen. Games take the core path and never see the gate.

The reference is free-running (a phase accumulator on the core's video clock,
with an increment the ARM computed for that same clock), so it is correct
whatever the scaler is doing. This build drops the ~vgas_en term. The
subcarrier enable itself is only ever set by the firmware in subcarrier
mode, so rgb, ypbpr, svideo and cvbs configurations are provably unaffected —
for them the gate's first input is already 0.

What to expect

  • The shelf, box art included, in colour on composite and S-Video.
  • Games: unchanged (they never hit the gate).
  • The in-game overlay runs the game core's framework, so it stays
    monochrome until cores are rebuilt against the fixed sys/. Shelf first,
    deliberately — one file to test, nothing else moved.
  • Worth watching: the colour reference is frame-locked to the menu core's
    frames, not the scaler's output frames. If that matters in practice it
    would show as chroma shimmer / dot-crawl on the shelf. Please report either
    way.

Install

  1. Keep your current file: cp /media/fat/menu.rbf /media/fat/menu.rbf.bak
  2. Copy this release's menu.rbf over /media/fat/menu.rbf
  3. Reboot (or load the menu core). No firmware or ini change needed; works
    with Classic Home v5 as released.

Roll back by restoring menu.rbf.bak.

Provenance

Upstream Menu_MiSTer commit 3c3634c (2026-06-03), with this fork's SNAC
framework patch and the one-line subcarrier change:

-    always @(posedge clk_vid) subcarrier_out <= ~(subcarrier & csync_en & ~ypbpr_en & ~forced_scandoubler & ~vgas_en) | sub_accum[39];
+    always @(posedge clk_vid) subcarrier_out <= ~(subcarrier & csync_en & ~ypbpr_en & ~forced_scandoubler) | sub_accum[39];

The gate is verbatim in mainline Template_MiSTer; once this is confirmed on
hardware we will raise it upstream.