From 08cd88ef3ac85a6c6e8071d9b055e6a29c5e711f Mon Sep 17 00:00:00 2001 From: itsme Date: Mon, 12 Jul 2021 23:00:24 +0200 Subject: noting that there can be more than one compressed chunk. --- docs/cronos-research.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/cronos-research.md b/docs/cronos-research.md index 1ee75c4..5d0a508 100644 --- a/docs/cronos-research.md +++ b/docs/cronos-research.md @@ -157,7 +157,9 @@ The toplevel table-id for CroStru and CroSys is #3, while referenced records hav CroBank.dat contains the actual database entries for multiple tables as described in the CroStru file. After each chunk is re-assembled (and potentially decoded with the per block offset being the record number in the .tad file). -Its first byte defines, which table it belongs to. It is encoded in cp1251 (or possibly IBM866) with actual column data separated by 0x1e. There is an extra concept of sub fields in those columns, indicated by a 0x1d byte. +Its first byte defines, which table it belongs to. It is encoded in cp1251 (or possibly IBM866) with actual column data separated by 0x1e. +There is an extra concept of sub fields in those columns, indicated by a 0x1d byte. +Also files seem have have special fields, starting with a 0x1b byte. ## structure definitions @@ -246,10 +248,12 @@ Other unassigned values in the table entry definition are some records are compressed, the format is like this: - uint16 size - uint8 head[2] = { 8, 0 } - uint32 crc32 - uint8 compdata[size-4] + multiple-chunks { + uint16 size; // stored in bigendian format. + uint8 head[2] = { 8, 0 } + uint32 crc32 + uint8 compdata[size-6] + } uint8 tail[3] = { 0, 0, 2 } ## encrypted records -- cgit v1.2.3