Skip to content

ZX-V v0.7.0

Choose a tag to compare

@cronomantic cronomantic released this 31 Oct 22:59
· 6 commits to main since this release

ZX-V, a 32-bit hobby computer inspired by the ZX Spectrum. (Español más abajo.)

What's new in 0.7.0

Colour palettes, files in ZX-V's own formats, loading screens, protected programs and a BASIC debugger.

  • Palettes: each of the four colour tables now has its own palette of 16 colours out of 65,536, so a screen can show 16 colours per line and up to 64 at once. In BASIC, PALETTE colour, r, g, b; in C, ZXV_PALETTE(t) and ZXV_RGB(r, g, b). The usual 15 colours are still the default, and colour 8 is still transparent for sprites. Umbra uses them for a lamp that dims and flickers and a fog of real dark colours.
  • Files in ZX-V's formats: SAVE writes programs to .zvb (with their variables, as on the Spectrum), arrays (DATA) to .zvd and CODE to .bin, with no 64 KB limit. A .tap is for taking programs to and from Spectrum emulators; .tap files from earlier ZX-V versions still load.
  • The ZX-V screen in a file: SAVE "x" SCREEN$ saves the screen (its mode, border, palette and every pixel) as a screen in a .gfx, which zxv-gfx edits; .scr is only the Spectrum's. SAVE "x" LINE 10 SCREEN$ puts it in the program as a loading screen, and native programs can have one too (elf2zxv.py --screen, png2gfx.py --screen). A game's web page shows it while the game starts.
  • Protected programs: SAVE "x" LINE 10 PROTECT saves a program that starts by itself and is deleted when it stops, so it cannot be listed. ZX-V's tools do not show it either.
  • BASIC debugger: breakpoints, step by step, variables, arrays and the call stack, from the ZX-V extension for VS Code, with the emulator (--basic-debug PORT in zxv-sdl and zxv-cli).
  • Also: the editor's cursor blinks cyan and blue, like the +2's; boardtest has a palette page (key P) to check them on the board; and the documentation has been reviewed against the code.
  • Changes to take into account: the .zxv header now has 72 bytes: programs made with earlier versions must go through elf2zxv.py again. ZX Basic needs 1.19.0-zxv.5 (the .zxv files of zxv.4 do not load). Snapshots from 0.6 still load.
File Contents
zxv-windows-x64.zip The emulator for Windows: the zxv app (with the ROM inside), zxv-sdl, zxv-cli, zxv-check, sdimg, zxv-gfx, zxv-tracker, the examples and the documentation. Unzip it and open zxv.exe
ZX-V-0.7.0-x86_64.AppImage The emulator for Linux in a single file: make it executable and run it
zxv-linux-x86_64.tar.gz The same for Linux (x86-64) as a folder, using the system's Qt 6 and SDL 2
zxv-web.zip The web version: unzip it and open index.html (no server needed), or upload it as it is to a website or to itch.io. It is also online at cronomantic.github.io/ZX-V
zxv-uf2.zip The firmware for the two Pico 2 boards (.uf2): which file goes on each board is in the firmware guide

The binaries are free and can be passed on unchanged (TERMS.txt). Start with the getting started guide.


ZX-V, un ordenador de 32 bits para aficionados, inspirado en el ZX Spectrum.

Novedades de la 0.7.0

Paletas de colores, ficheros en los formatos de ZX-V, pantallas de carga, programas protegidos y un depurador para el BASIC.

  • Paletas: cada una de las cuatro tablas de colores tiene ahora su paleta de 16 colores de entre 65.536, así que una pantalla puede tener 16 colores por línea y hasta 64 a la vez. En el BASIC, PALETTE color, r, g, b; en C, ZXV_PALETTE(t) y ZXV_RGB(r, g, b). Los 15 colores de siempre siguen siendo los de partida, y el 8 sigue siendo el transparente de los sprites. Umbra las usa para una lámpara que se apaga y tiembla y una niebla de oscuros de verdad.
  • Ficheros en los formatos de ZX-V: SAVE graba los programas en .zvb (con sus variables, como en el Spectrum), las matrices (DATA) en .zvd y CODE en .bin, sin el límite de 64 KB. El .tap queda para llevar programas a los emuladores del Spectrum y traerlos; los .tap de las versiones anteriores de ZX-V se siguen cargando.
  • La pantalla de ZX-V en un fichero: SAVE "x" SCREEN$ graba la pantalla (su modo, su borde, su paleta y cada píxel) como una pantalla de un .gfx, que se edita en zxv-gfx; el .scr es solo el del Spectrum. SAVE "x" LINE 10 SCREEN$ la mete en el programa como pantalla de carga, y los programas nativos también pueden llevar una (elf2zxv.py --screen, png2gfx.py --screen). La página web de un juego la enseña mientras arranca.
  • Programas protegidos: SAVE "x" LINE 10 PROTECT graba un programa que arranca solo y se borra al pararse, así que no se puede listar. Las herramientas de ZX-V tampoco lo enseñan.
  • Depurador del BASIC: puntos de parada, paso a paso, variables, matrices y la pila de llamadas, desde la extensión de ZX-V para VS Code, con el emulador (--basic-debug PUERTO en zxv-sdl y zxv-cli).
  • Además: el cursor del editor parpadea en cian y azul, como el del +2; boardtest tiene una página de las paletas (tecla P) para probarlas en la placa; y la documentación se ha repasado con el código.
  • Cambios a tener en cuenta: la cabecera de los .zxv tiene ahora 72 bytes: los programas hechos con versiones anteriores tienen que pasar otra vez por elf2zxv.py. ZX Basic necesita la 1.19.0-zxv.5 (los .zxv de la zxv.4 no cargan). Las instantáneas de la 0.6 se siguen cargando.
Fichero Contenido
zxv-windows-x64.zip El emulador para Windows: la aplicación zxv (con la ROM dentro), zxv-sdl, zxv-cli, zxv-check, sdimg, zxv-gfx, zxv-tracker, los ejemplos y la documentación. Se descomprime y se abre zxv.exe
ZX-V-0.7.0-x86_64.AppImage El emulador para Linux en un solo fichero: se le da permiso de ejecución y se abre
zxv-linux-x86_64.tar.gz Lo mismo para Linux (x86-64) en una carpeta, con el Qt 6 y el SDL 2 del sistema
zxv-web.zip La versión web: se descomprime y se abre index.html, sin servidor, o se sube tal cual a una web o a itch.io. También está en línea, en cronomantic.github.io/ZX-V
zxv-uf2.zip El firmware de las dos Pico 2 (.uf2): qué va en cada placa está en la guía del firmware

Los binarios son gratis y se pueden repartir sin cambios (TERMS.txt). Empieza por la guía de primeros pasos.