Skip to content

Repository files navigation

NextDAAD - ZX Spectrum Next DAAD interpreter

NextDAAD runs DAAD text adventures on the ZX Spectrum Next. Written in Z80 assembly using the Next's extended instruction set.

In addition to the standard DAAD features it adds Layer 2 location pictures up to 320x256 in 8-bit colour, full-screen video cutscenes with sound, AY music and sampled sound effects across the Turbo Sound Next's three chips and DACs, an 80-column tilemap based text display with switchable fonts and paper/ink colours from the full ZX Next palette, mouse input, and games that span several databases.

An authoring kit ships alongside it, so writing a game for NextDAAD means just editing your DSF source and double-clicking one batch file.

A demo game ready to run on your ZX Spectrum Next can be downloaded here.

Requirements

  • A ZX Spectrum Next (or an emulator) with an SD card. Video cutscenes need 2MB of RAM and a real machine, and so does a sampled effect longer than 24K - everything else, including shorter effects, runs under emulation.
  • A DAAD DSF source file or a compiled DAAD database, and its assets on the card. The authoring kit builds one for you, and existing version 2 and version 3 databases both run as they are.
  • Windows Powershell if you want to use the automated batch builders of the authroing kit.

Features

  • Location graphics - 256x192 and 320x256 pictures in Layer 2's 8-bit colour modes, each with its own palette, optionally ZX0-compressed, drawn through a bank-allocated cache and a double-buffered surface
  • Title screens - a picture shown at boot over the theme music, needing no changes to your game
  • Video cutscenes - NXV, NextDAAD's own delta-video format, played up to full screen with synchronised digitised audio, streamed from the card when a clip is too big to hold in RAM
  • AY music - interrupt-driven Arkos playback over the Turbo Sound Next's three PSGs, resident or streamed from the card, with boot autoplay and the classic BEEP tone
  • Sound effects and samples - Arkos AY effects, plus 8-bit WAV samples of any length via card streaming, on two concurrent DAC channels that auto-allocate with stealing or pin outright, looping ones resuming after a video
  • 80x32 text - a tilemap based text driver with per-character colour from the full ZX Next palette and its own 80-column font
  • Custom fonts and pointers - drop in a FONT.CHR or a POINTER.SPR and the interpreter picks them up at boot, and a game can switch between up to ten of each while it runs
  • Mouse input - Kempston mouse with a hardware sprite pointer
  • 64KB databases - DAAD game databases up to 64KB in size
  • Multi-part games - switch between databases at runtime with flags and objects intact, with per-part assets and saves that load from any part
  • DAAD engine - all 128 condacts, the eight-window system, the vocabulary parser with multi-command sentences, the object model, SAVE/LOAD and RAMSAVE to the card, and the DDB text reader
  • EXTERN support - load and run external machine code binaries up to 16KB in size, either once or on an interrupt, passing flags, object table, message text etc
  • The Next's memory - RAM detection and an 8K bank allocator across the extended memory map

For authors

authoring-kit\ is a DAAD-Ready-style workflow. Drop in a .DSF, add PNG artwork, Arkos music and MP4 cutscenes if you want them, and double-click BUILD.BAT: it compiles the database, converts every asset, and leaves a RELEASE\ folder to copy straight onto an SD card. A DSF source file is included with it showing examples of NextDAAD multimedia condact usage.

A manual covering the specifics of creating a game for NextDAAD is included with the authoring kit authoring-kit\docs\index.html - or you can read the same pages on GitHub from manual/index.md

The kit needs a few third-party tools it cannot redistribute:

But included with the kit is VidTune, a UI app for fine-tuning video encodes and experimenting with different settings to get the best results for your videos.

A packaged kit, holding only what an author needs, is on the releases page.

A companion app, NextDither, for converting true-colour images to the layer 2 format spec for NextDAAD is available as a seperate download via itch.io

Building the interpreter

If you wish to modify or build your own version of the interpreter rather than using the pre-built version included in the authoring kit, the toolchain lives in tools\ and is not part of the repository: sjasmplus, CSpect, DeZog, Gfx2Next, DRC via DAAD Ready, NextDAAD DRC fork.

powershell -File build.ps1            # debug build
powershell -File build.ps1 -Release   # release build
powershell -File build.ps1 -Kit       # authoring kit build
powershell -File build.ps1 -Run       # build, then launch CSpect
powershell -File build.ps1 -Clean

A debug build carries an on-screen diagnostic console and SLD data for source-level debugging in DeZog. VS Code tasks wrap the same script.

tests\build-tests.ps1 compiles the test databases and stages a card folder for whichever leg you ask for - the condact suite, the fixtures, or a full corpus game. Its switches are documented in the script itself.

build.ps1 -Kit assembles the authoring kit, which includes generating authoring-kit\docs\ from manual\ with scripts\build_manual.py. Edit the Markdown, never the generated HTML.

Acknowledgments

Licence

MIT - see LICENSE.

Changelog

CHANGELOG.md records what changed in each version.

Disclaimer

The development of NextDAAD is largely AI agent driven.

Releases

Sponsor this project

Packages

Contributors

Languages