Skip to content

EN Video

drewpo28 edited this page Jun 21, 2026 · 4 revisions

Video

Menu path: Video · Boards: all (extended items — RP2350 only) · Requires: —

Overview

Display output and graphics-mode settings: resolution / refresh, palette, render type, aspect ratio, scanlines and V-Sync, plus a set of RP2350-only extras (Gigascreen, ULA+, Timex SCLD, DMA, HDMI dither, Pentagon 16-colour).

The output the device drives — VGA or HDMI (and on some builds a TFT/soft composite) — depends on the board / firmware build, not on this menu: it is chosen at boot from a hardware link / the selected display driver. The resolution is stored separately for VGA and for HDMI, so switching the cable selects the right saved mode automatically.

The full menu is available on RP2350. On RP2040 the menu is trimmed to Mode · Palette · Render type · Aspect Ratio · Scanlines · V-Sync — the extras (ULA+, Gigascreen, Timex, DMA, HDMI dither, 16col) need more SRAM/resources than the RP2040 has, and only the two 640×480 modes are offered.

Resolution changes reboot the machine. Selecting a new Mode (or changing the Aspect Ratio) saves the choice and performs a hard reset — a runtime framebuffer resize is unreliable because of heap fragmentation, so the change is applied on the way back up. After the reboot a "Keep this video mode?" prompt appears with a countdown; if you don't confirm it reverts to the previous mode.

Menu structure

Video
├── Mode ▸                resolution / refresh (reboots — see note)
│     640x480@60  [6]
│     640x480@50  [5]
│     720x480@60  [H]     (RP2350) half border
│     720x576@50  [F]     (RP2350) full border
├── Palette ▸             Pulsar / Alone / Grayscale / Mars / Ocean (+ custom)
├── Render type ▸         Standard [S] / Snow effect [A]
├── Aspect Ratio ▸        4:3 [4] / 16:9 [1]   (reboots)
├── Scanlines ▸           Off / 1 Darkest / 2 Dark (default) / 3 Light / 4 Lightest
├── V-Sync ▸              On / Off
├── Gigascreen (No Flick) ▸   (RP2350)  Off / On / Auto
├── ULA+ ▸                    (RP2350)  Yes / No
├── Timex Gfx Mode ▸          (RP2350)  Yes / No
├── DMA ▸                     (RP2350)  OFF / Port #0B (MB02+) / Port #6B (DATA-GEAR)
├── HDMI Dither (ULA+) ▸      (RP2350)  Yes / No   (HDMI output only)
└── 16col (Pentagon) ▸        (RP2350)  Yes / No   (Pentagon/Profi only)

(Default option markers shown in [ ]. The set of rows below V-Sync only exists on RP2350.)

Options

Item Values Default Description
Mode 640x480@60 · 640x480@50 · 720x480@60 · 720x576@50 640x480@60 Resolution + refresh. The two 720×… modes are RP2350 only. 720x480@60 is a half-border (360×240) mode, 720x576@50 is a full-border (360×288) mode. Changing the mode reboots (see note). Stored separately per output as vga_video_mode / hdmi_video_mode
Palette Pulsar · Alone · Grayscale · Mars · Ocean (+ any custom) Pulsar ZX colour palette. The list is built dynamically (built-in + custom palettes); applied live
Render type Standard [S] / Snow effect [A] Standard "Snow" emulates the ULA contention artefact (snow when the CPU writes video RAM during draw). Snow is forced off on Pentagon/512K/1024K (no snow on those machines)
Aspect Ratio 4:3 [4] / 16:9 [1] 4:3 Picture aspect for the 640×480 modes. Changing it reboots. (Only affects the 640×480 modes — the full/half-border 720 modes set their own geometry)
Scanlines Off [0] / 1 Darkest / 2 Dark / 3 Light / 4 Lightest 2 Dark CRT scanline effect, Off + 4 brightness levels. Applied live
V-Sync On / Off — Vertical sync
Gigascreen (No Flick) (RP2350) Off / On / Auto Off Flicker-free rendering of Gigascreen (two-frame interlaced colour) images. On always blends frames (allocates a ~52 KB previous-frame buffer); Auto enables blending only while the program is rapidly switching video pages (the gigascreen technique) and disables it once page-flipping stops
ULA+ (RP2350) Yes / No No ULAplus (ULA64) extended palette — up to 64 on-screen colours from a 256-colour palette, keeping the 2-colours-per-cell rule; the BRIGHT/FLASH attribute bits select one of four programmable sub-palettes of 8 INK + 8 PAPER colours. Programmed via ports #BF3B (index, write) / #FF3B (data). See speccy.info/ULAplus
Timex Gfx Mode (RP2350) Yes / No No Timex SCLD video modes via port #FF (hi-res 512×192, hi-colour 8×1 attributes, dual-screen). Enabling it disables the SAA1099 (shared resource) with a notice
DMA (RP2350) OFF / Port #0B (MB02+) / Port #6B (DATA-GEAR) OFF Z80-DMA controller mapping: #0B = MB-02+ style Z80 DMA, #6B = DATA-GEAR / zxnDMA. When on, an attribute-shadow buffer is allocated on the heap
HDMI Dither (ULA+) (RP2350) Yes / No No Bayer dithering of the ULA+ palette over HDMI (applied in the scanout ISR). Only takes effect when ULA+ is active; shown only on HDMI output (no extra palette bits on VGA — selecting it on a VGA link warns "HDMI only")
16col (Pentagon) (RP2350) Yes / No No Pentagon 16-colour mode by Alone Coder (2005) — a chunky per-pixel colour mode (15 colours, no 8×8 attribute clash): one byte sets the colour of two adjacent pixels (EGA-style Y/G/R/B bits), screen spread across four 6144-byte areas. Enabled via port #EFF7 D0. Requires Pentagon or Profi — selecting it on another machine warns "16col is Pentagon only". See speccy.info/16col

All settings are persisted to NVS; resolution/aspect changes additionally trigger a reboot.

Video modes & output

  • Output type (VGA / HDMI / TFT / soft-composite) is a property of the board and firmware build (the VGA_HDMI driver covers both VGA and HDMI). VGA vs HDMI is selected at boot (hardware link / driver), not from this menu.
  • The active resolution is kept per output, so VGA and HDMI can each remember their own mode.
  • 720x480@60 renders a half border (360×240), 720x576@50 a full border (360×288) — both RP2350 only. The 640×480 modes use the Aspect Ratio setting.
  • HDMI audio (RP2350) is configured under Audio, not here.
  • A resolution change always reboots (heap fragmentation prevents a safe runtime framebuffer resize); a post-reboot "Keep this video mode?" countdown lets you roll back.

💡 Profi DS80 (512×240 hi-res) is not switched here — toggle it in the Profi machine submenu (STD / DS80). See Machine.

Wiring / schematic

The display base pins (VGA/HDMI) for each board are in Boards & pinout.

How to test

Image Feature What it checks Expected result
(border-effect demo) Border timing 720x576@50 full border Aquaplane / The Sentinel / Overscan draw correctly
(Timex hi-colour) Timex SCLD 8×1 vs 8×8 attributes hi-colour shows 8×1 attributes
(ULA+ demo) ULA+ palette 64-colour palette 64 colours on screen at once
a Gigascreen image Gigascreen Flicker suppression "On"/"Auto" removes the colour flicker

Full list: Test images.

Links

Clone this wiki locally