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.
- 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.
- 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
BEEPtone - 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.CHRor aPOINTER.SPRand 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/LOADandRAMSAVEto 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
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:
- DAAD Ready - the DRC compiler and PHP
- Gfx2Next - PNG to Layer 2 pictures
- Arkos Tracker 3 - music and sound effects
- CSpect - emulator, to play the result
- ffmpeg - only for encoding cutscene
- NextDAAD DRC - DRC fork to allow for large databases on ZX Spectrum Next target
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
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.
- Tim Gilberts for writing the original DAAD
- Andres Samudio of Aventuras AD for contributing DAAD to the public domain
- Uto for creating DRC and DAAD Ready which influenced a lot of this project
- NataliaPC for creating MSX2DAAD which inspired this project
- Julien Nevo for ArkosTracker
- em00k for playwav32 which informed the sample sound playback method
- Rusty Pixels for Gfx2Next
- Mike Dailly for CSpect
- z00m for sjasmplus
- Stefan Vogt for The Curse of Rabenstein which was used during development testing
- tadaskay for the mouse pointer sprite
MIT - see LICENSE.
CHANGELOG.md records what changed in each version.
The development of NextDAAD is largely AI agent driven.