summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoritsme <itsme@xs4all.nl>2021-07-12 23:00:24 +0200
committeritsme <itsme@xs4all.nl>2021-07-12 23:07:05 +0200
commit08cd88ef3ac85a6c6e8071d9b055e6a29c5e711f (patch)
tree789c9cdeb5db13e504e46215c3924ae7cd05d001
parentaccc195b894c45f1a9a837188d38bf9df1ab0fd5 (diff)
noting that there can be more than one compressed chunk.
-rw-r--r--docs/cronos-research.md14
1 files 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
157 157
158CroBank.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). 158CroBank.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).
159 159
160Its 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. 160Its first byte defines, which table it belongs to. It is encoded in cp1251 (or possibly IBM866) with actual column data separated by 0x1e.
161There is an extra concept of sub fields in those columns, indicated by a 0x1d byte.
162Also files seem have have special fields, starting with a 0x1b byte.
161 163
162 164
163## structure definitions 165## structure definitions
@@ -246,10 +248,12 @@ Other unassigned values in the table entry definition are
246 248
247some records are compressed, the format is like this: 249some records are compressed, the format is like this:
248 250
249 uint16 size 251 multiple-chunks {
250 uint8 head[2] = { 8, 0 } 252 uint16 size; // stored in bigendian format.
251 uint32 crc32 253 uint8 head[2] = { 8, 0 }
252 uint8 compdata[size-4] 254 uint32 crc32
255 uint8 compdata[size-6]
256 }
253 uint8 tail[3] = { 0, 0, 2 } 257 uint8 tail[3] = { 0, 0, 2 }
254 258
255## encrypted records 259## encrypted records