-
Notifications
You must be signed in to change notification settings - Fork 3
EN Video
Menu path: Video · Boards: all (extended items — RP2350 only) · Requires: —
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.
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.)
| 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.
-
Output type (VGA / HDMI / TFT / soft-composite) is a property of the board and
firmware build (the
VGA_HDMIdriver 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.
The display base pins (VGA/HDMI) for each board are in Boards & pinout.
| 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.
- Timex SCLD: https://en.wikipedia.org/wiki/Timex_Sinclair_2068
- ULAplus: https://zxdesign.itch.io/ulaplus · spec: https://faqwiki.zxnet.co.uk/wiki/ULAplus · https://speccy.info/ULAplus
- Pentagon 16col (Alone Coder): https://speccy.info/16col
- Original ESPectrum: https://github.com/EremusOne/ESPectrum
Меню (RU)
Сквозные темы
Для разработчиков