Skip to content

Releases: absent42/NDRC

NDRC v0.2.2

Choose a tag to compare

@absent42 absent42 released this 27 Sep 17:52

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, so MES @x could run as MES x and LET a @b could lose its INDIR prefix. 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

Choose a tag to compare

@absent42 absent42 released this 30 Aug 14:11

NDRC v0.2.1 - 30 August 2026

  • New -cols=40|80 option: overrides the exported COLS symbol for NEXTDAAD 40-column text mode. Case-sensitive, NDRC extension. Pair with the game issuing GFX 1 18 at init. Any other value is an "Invalid option" error. Without the flag, COLS is unchanged (NEXTDAAD's builtin 80).

NDRC v0.2

Choose a tag to compare

@absent42 absent42 released this 29 Aug 15:01

NDRC v0.2 - 29/08/2026

  • New -auto-tokens option: 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 .tok file 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 .tok override carrying "encoder": "optimal" (with advanced compression) engages the optimal-parse encoder even without the flag. Hand-written and DRT .tok files 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-tokens compile 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

Choose a tag to compare

@absent42 absent42 released this 28 Aug 13:46

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.