diff options
author | itsme <itsme@xs4all.nl> | 2021-07-12 23:00:24 +0200 |
---|---|---|
committer | itsme <itsme@xs4all.nl> | 2021-07-12 23:07:05 +0200 |
commit | 08cd88ef3ac85a6c6e8071d9b055e6a29c5e711f (patch) | |
tree | 789c9cdeb5db13e504e46215c3924ae7cd05d001 /docs | |
parent | accc195b894c45f1a9a837188d38bf9df1ab0fd5 (diff) |
noting that there can be more than one compressed chunk.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/cronos-research.md | 14 |
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 | ||
158 | 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). | 158 | 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). |
159 | 159 | ||
160 | 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. | 160 | Its first byte defines, which table it belongs to. It is encoded in cp1251 (or possibly IBM866) with actual column data separated by 0x1e. |
161 | There is an extra concept of sub fields in those columns, indicated by a 0x1d byte. | ||
162 | Also 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 | ||
247 | some records are compressed, the format is like this: | 249 | some 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 |