ZX-V documentation
ZX-V is a 32-bit hobby computer inspired by the ZX Spectrum: switch it on and you are in BASIC. These pages explain how to use it, how to program it in BASIC or in C, and how to build the real machine.
Start here
- Getting started — get the emulator, type your first program and load the built-in examples.
- The emulator — the desktop and web versions: menus, keys, the SD card folder, snapshots and options.
- The machine — what ZX-V is like inside: the screen and its colours, sound, input, memory and the files it uses.
Programming in BASIC
- Learn BASIC — a course from scratch: no programming or Spectrum experience needed. It ends with a complete game.
- The editor — typing and editing programs, the keys and the options menu.
- BASIC reference — every statement, function and error message.
Programming in C
- Native programs (SDK) — the toolchain, your first program, graphics, sound, input and files.
- Graphics — the graphics engine in depth: video memory, sprites, tile maps, scrolling, mode 7 and converting images.
- API reference — every function of the SDK.
Tools for the PC
They come with the emulator, for Windows and Linux:
- The graphics editor,
zxv-gfx— sprites, tiles, maps and textures for BASIC and C programs. - The tracker,
zxv-tracker— music for the two AY chips (PT3 modules) and AYFX sound effects for BASIC and C programs. - Publishing your game on the web —
mkweb.py(in the SDK) makes a page with only your game, in C or in BASIC, for itch.io or your website, with touch controls for phones.
Compiling BASIC
- ZX Basic — Boriel's BASIC compiler, with a ZX-V target: BASIC programs that run like native ones.
The real machine
- Build the hardware — what you need and how it all connects.
- The board — ordering the PCB assembled, and the parts you solder yourself.
- The firmware — putting the software on the two Picos.
- On a protoboard — building it without the PCB.
Examples
- A platform game in BASIC — sprites, a tile map, scrolling and music.
- Rock, Paper, Scissors in BASIC — the block IF,
SELECT CASEand procedures, in a listing you load as text. - Sentry, a missile defence game in BASIC — the mouse, fast graphics and chain explosions at 60 frames per second.
- Estela, a shooter in C — a complete native game.
- Route 128, a racing game in C — a pseudo-3D road with bends and crests, and scaled sprites.
- Muncher in BASIC — a maze with four chasers, each hunting you in its own way, with a tile map and sprites at 60 frames per second.
- Cascade in BASIC — a falling-gems puzzle whose graphics, music and effects are editable files.
- The Mine, a digging game in C — boulders and diamonds that fall and roll, in caves bigger than the screen.
- Street Justice, a brawler in C — through the streets against the gangs' thugs, with fighters drawn by the engine from a skeleton.
- Umbra, a 3D maze in C — raycast walls, a mode 7 floor and a lamp whose light shrinks as its oil runs out.
- The Keep, a dungeon adventure in C — four floors
of rooms seen from above, whose maps you can redraw in
zxv-gfx. - ZXV Chess, chess in C — against the machine or for two players, with the keyboard, a joystick or the mouse.
- Stardust, a game in ZX Basic — double
buffering, sprites and collisions with
zxv.bas, at 60 frames per second.
This documentation is licensed under CC BY 4.0; the code examples in it are public domain (CC0), so you can copy them into your programs freely.