NextDAAD runs DAAD text adventures on the ZX Spectrum Next. It is written in Z80 assembly using the Next's extended instruction set.
What it adds on top: Layer 2 location pictures up to 320x256 in 8-bit colour, full-screen video cutscenes with sound, AY music and sampled audio across the Turbo Sound Next's three chips and DACs, an 80-column tilemap based text display, mouse input, and games that span several databases.
An authoring kit ships alongside it, so writing a game for NextDAAD means just editing your source and double-clicking one batch file.
- A ZX Spectrum Next (or an accurate emulator) with an SD card. Video cutscenes need 2MB of RAM and a real machine - everything else runs under emulation.
- A game, meaning a compiled DAAD database and its assets on the card. The authoring kit below builds one for you, and existing version 2 and version 3 databases both run as they are.
- 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 full screen at true rate 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 fed to the DAC and mixed under the music
- 80x32 text - a tilemap text driver with per-character colour and its own 80-column font
- Custom fonts and pointers - drop in a
FONT.CHRor aPOINTER.SPRand the interpreter picks them up at boot - Mouse input - Kempston mouse with a hardware sprite pointer
- Multi-part games - switch between databases at runtime with flags and objects intact, with per-part assets and saves that load from any part
- The full 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 - 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
starter game ships with it so a first build works before you have written
anything.
The manual is the documentation for all of this. Open
authoring-kit\docs\index.html - or
read the same pages on GitHub from manual/index.md,
which is where they are written and where corrections go.
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 cutscenes
A packaged kit, holding only what an author needs, is on the releases page.
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.
powershell -File build.ps1 # debug build
powershell -File build.ps1 -Release # release 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
MIT - see LICENSE. CHANGELOG.md records what changed in each version.
The development of NextDAAD is largely AI agent driven.