Releases: absent42/NDRC
Releases · absent42/NDRC
Release list
NDRC v0.2.2
NDRC v0.2.2 - 29 September 2026
- Entries that differ only in indirection no longer share one compiled body. Entry sharing ignored
@on either parameter, soMES @xcould run asMES xandLET a @bcould lose itsINDIRprefix. This reproduced a bug in the DRC reference that Uto fixed upstream in commit 71df4e5; output stays byte-identical to DRC. - The linux64 release binary is linked statically. A dynamic link on the build runner bound fmod@GLIBC_2.38 and failed on glibc 2.35 Ubuntu 22.04); the static build runs on any x86_64 glibc distro and produces byte-identical DDBs.
NDRC v0.2.1
NDRC v0.2.1 - 30 August 2026
- New
-cols=40|80option: overrides the exportedCOLSsymbol for NEXTDAAD 40-column text mode. Case-sensitive, NDRC extension. Pair with the game issuingGFX 1 18at init. Any other value is an "Invalid option" error. Without the flag,COLSis unchanged (NEXTDAAD's builtin 80).
NDRC v0.2
NDRC v0.2 - 29/08/2026
- New
-auto-tokensoption: per-game text compression. Instead of DRC's fixed per-language token table, the compiler selects up to 128 tokens from the compiling game's own text and encodes the text with an optimal parse. Compressed text measures 8-14% smaller than the builtin table across a corpus of real games. Output DDBs remain format-identical and decode on every DAAD interpreter, on every target; without the flag, output stays byte-identical to DRC. - New
--tok[=path]option (implies-auto-tokens): writes the selected table as a standard.tokfile beside the input, where the normal override lookup finds it on the next run. The file records"encoder": "optimal"so a flagless recompile reproduces the same DDB byte for byte; stock DRC accepts the same file and simply ignores the marker. - A
.tokoverride carrying"encoder": "optimal"(with advanced compression) engages the optimal-parse encoder even without the flag. Hand-written and DRT.tokfiles without the marker compile exactly as DRC would. - On targets other than NEXTDAAD, selected tokens never contain
_or@: verified against the original ZX Spectrum interpreter, a_arriving from inside a token prints literally instead of substituting the object name. - Every
-auto-tokenscompile self-checks: each compressed message is decoded back and compared against the source text before the DDB is written. - The verbose (
-v) endianness line now names the real file byte order. It previously printed the inverse ("big endian" for little-endian targets and vice versa), reproducing a display bug in the DRC reference that Uto fixed upstream in commit ff45ff2.
NDRC v0.1
NDRC compiles DAAD Adventure Writer source (.DSF) into a DAAD database (.DDB). It is one self-contained executable with no runtime, no interpreter and no companion installation, for Windows and Linux.
It is a from-scratch C port of DRC, Uto's DAAD Reborn Compiler (a FreePascal front end and a PHP back end), verified byte-identical against DRC's own drf+drb pipeline. Uto's DRC is the reference implementation: https://github.com/Utodev/DRC
NDRC was made to streamline the toolchain of NextDAAD, however the compiler is compliant with all DAAD targets and can be used as a substitute for DRC.