Skip to content

Legacy .hdat01 file format

Legacy HDAT persists projects as a text-based .hdat01 file with per-line reversible encoding and implicit section ordering.

Encoding/decoding concept (legacy)

Legacy decode steps (high-level):

  1. Replace many filler symbols/chars with #.
  2. Split by # into numeric tokens.
  3. Apply a reverse arithmetic transform:
\[ decoded = \left(\left(\left(\frac{value}{7}\right)-1\right)/3\right)-2 \]
  1. Interpret as ASCII bytes to recover plaintext.

Sectioned serialization (legacy)

The file stores:

  • global project settings
  • then each module grid/table as ordered sections
  • with positional meaning (no explicit schema version)

Known legacy behavior:

  • empty table sentinel is encoded as "051828"
  • loader reconstructs rows/columns sequentially
  • order is implicit and tightly coupled to UI grid column indices

Migration risks (and why it matters even for desktop documentation)

  • no schema versioning
  • weak validation and corruption tolerance
  • difficult to extend without breaking compatibility
  • logic and data are coupled to UI grids and column indices

For each .hdat01 project, record:

  • HDAT version/build
  • expected schema version (even if retrofitted)
  • a decoded, human-readable snapshot of critical settings
  • checksums for original and decoded content