DSM/Mitsubishi CAPS: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
==File Formats== | ==File Formats== | ||
===VIN Lookup=== | |||
SHARYO.IDX Lookup: | |||
{| class="wikitable" | |||
!Read start | |||
!Bytes read | |||
|- | |||
|0 | |||
|2048 | |||
|- | |||
|4096 | |||
|2048 | |||
|- | |||
|229376 | |||
|2048 | |||
|- | |||
|229376 | |||
|4096 | |||
|- | |||
|21,833,728 | |||
|2048 | |||
|- | |||
|21,831,680 | |||
|4096 | |||
|} | |||
SHARYO.DAT Lookup: | |||
{| class="wikitable" | |||
!Read start | |||
!Bytes read | |||
|- | |||
|35,073,568 | |||
|2048 | |||
|- | |||
|35,069,952 | |||
|8192 | |||
|} | |||
===IDX - Index=== | ===IDX - Index=== | ||
Line 34: | Line 72: | ||
|14-31 | |14-31 | ||
|Other flags | |Other flags | ||
|- | |||
|15 | |||
|00h or 01h or 02h, always set with byte 16? Always the same as byte 16? | |||
|- | |||
|16 | |||
|00h or 01h or 02h, always set with byte 15? Always the same as byte 15? | |||
|- | |||
|18 | |||
|Secondary counter, starts at 01h and increments by 01h, always used with bytes 15 and 16 set? | |||
|- | |- | ||
|22 | |22 |
Revision as of 03:09, 19 April 2023
File Formats
VIN Lookup
SHARYO.IDX Lookup:
Read start | Bytes read |
---|---|
0 | 2048 |
4096 | 2048 |
229376 | 2048 |
229376 | 4096 |
21,833,728 | 2048 |
21,831,680 | 4096 |
SHARYO.DAT Lookup:
Read start | Bytes read |
---|---|
35,073,568 | 2048 |
35,069,952 | 8192 |
IDX - Index
Index files are broken up into 2048 byte chunks, which I will refer to as "pages". Index file must be at least 1 page in size, meaning the smallest IDX file will be 2048 bytes, filled mostly with null bytes(00h) if it has 1 or 2 indexes (there are 60 indexes per page in SHARYO.IDX for example).
Header
The first 32 bytes of each page is the "header". The header's first 8 bytes contain the filename, if the filename is less than 8 bytes the remaining bytes will be padded with 20h. After the name is "IDX", followed by 00h as a seperator.
Byte 13 (14th byte) is the "page number", starting with 01h and incrementing each page.
Bytes 14-32 appear to be other informational flags which have yet to be understood.
Byte # | Description |
---|---|
0-7 | Uppercase ASCII, matches file name, if name < 8 bytes it is padded with 20h |
8-10 | 49h 44h 58h, literal: "IDX", Uppercase ASCII |
11 | Always 00h, separator or null byte for the string? |
12 | Always the same in all headers that are in the same file, often seen: 09h 11h, is this multiplier or record length? |
13 | The "page" count, starts at 01h increments by 1 every "header" |
14-31 | Other flags |
15 | 00h or 01h or 02h, always set with byte 16? Always the same as byte 16? |
16 | 00h or 01h or 02h, always set with byte 15? Always the same as byte 15? |
18 | Secondary counter, starts at 01h and increments by 01h, always used with bytes 15 and 16 set? |
22 | Number of records on this page |
index entry
Byte # | Description |
---|
Examples
NU = NULL BYTE (00h) PA = PADDING (20h)
SEIBI.IDX - 2048 bytes
Byte : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Hex : 53 45 49 42 49 20 20 20 49 44 58 00 09 01 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 39 39 39 39 39 39 39 39 39 01 ASCII: S E I B I I D X 9 9 9 9 9 9 9 9 9
UNKATA.IDX - 2048 bytes
Byte : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Hex : 55 4E 4B 41 54 41 20 20 49 44 58 00 09 01 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 39 39 39 39 39 39 39 39 39 01 ASCII: U N K A T A I D X 9 9 9 9 9 9 9 9 9
SHARYO.IDX - bytes
#Header - 32 bytes: \/ Page (1) \/ Number of records Byte : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Hex : 53 48 41 52 59 4F 20 20 49 44 58 00 11 01 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 ASCII: S H A R Y O I D X Data : PA PA NU 11 1 6 #VIN (02) - 21 bytes \/-- Count Column (2) { 17 bytes } Byte : 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Hex : 34 41 33 41 43 38 34 4C 33 59 45 30 35 31 32 36 31 02 00 00 00 ASCII: 4 A 3 A C 8 4 L 3 Y E 0 5 1 2 6 1 Data : 2 NU NU NU #VIN (03) - 21 bytes Hex : 34 41 33 43 53 34 34 54 58 4D 45 30 30 36 31 30 36 03 00 00 00 ASCII: 4 A 3 C S 4 4 T X M E 0 0 6 1 0 6 Data : 3 NU NU NU #VIN (04) - 21 bytes Hex : 4A 41 33 41 4D 36 34 4A 37 52 59 30 30 35 33 35 33 04 00 00 00 ASCII: J A 3 A M 6 4 J 7 R Y 0 0 5 3 5 3 Data : 4 NU NU NU #VIN (05) - 21 bytes Hex : 4A 41 34 47 4A 33 31 53 31 4D 4A 30 31 33 39 31 34 05 00 00 00 ASCII: J A 4 G J 3 1 S 1 M J 0 1 3 9 1 4 Data : 5 NU NU NU #VIN (06) - 21 bytes Hex : 4A 41 37 4C 53 32 31 47 34 52 50 30 31 32 37 33 34 06 00 00 00 ASCII: J A 7 L S 2 1 G 4 R P 0 1 2 7 3 4 Data : 6 NU NU NU #??? (07) - 18 bytes Hex : 5A 31 36 41 57 59 30 59 30 30 31 36 39 37 20 20 20 07 ... \ ASCII: Z 1 6 A W Y 0 Y 0 0 1 6 9 7 ... + 1893 Null Bytes (2048 byte total header space) Data : PA PA PA 7 ... /
| Always 11?? #Header 2 (Start at 2048 Bytes) - 32 Bytes \/ \/Page (2) \/ Number of records Byte : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Hex : 53 48 41 52 59 4F 20 20 49 44 58 00 11 02 00 01 01 00 01 00 00 00 60 00 00 00 00 00 00 00 00 00 ASCII: S H A R Y O I D X ' Data : PA PA NU 11 2 1 1 1 60 #Indexes from page 2 { 17 bytes } \/-- Count Column (8) Hex : 32 36 41 58 4E 20 20 45 30 38 37 35 34 31 20 20 20 08 00 00 00 ASCII: 2 6 A X N E 0 8 7 5 4 1 Data : PA PA PA PA PA 8 NU NU NU Hex : 33 34 42 31 52 20 20 45 30 39 35 37 37 32 20 20 20 09 00 00 00 ASCII: 3 4 B 1 R E 0 9 5 7 7 2 Data : PA PA PA PA PA 9 NU NU NU Hex : 33 34 42 33 52 20 20 45 30 38 32 30 37 30 20 20 20 0A 00 00 00 ASCII: 3 4 B 3 R E 0 8 2 0 7 0 Data : PA PA PA PA PA 10 NU NU NU
#Header 3 Byte : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Hex : 53 48 41 52 59 4F 20 20 49 44 58 00 11 03 00 01 01 00 02 00 00 00 60 00 00 00 00 00 00 00 00 00 ASCII: S H A R Y O I D X ' Data : PA PA NU 11 3 1 1 2 60 #Indexes from page 3 \/-- Count Column (68) Hex : 34 41 33 41 43 38 34 4C 39 59 45 30 31 38 33 37 36 68 00 00 00 ASCII: 4 A 3 A C 8 4 L 9 Y E 0 1 8 3 7 6 h Data : 68 NU NU NU Hex : 34 41 33 41 45 34 35 47 31 33 45 31 33 38 36 34 30 69 00 00 00 ASCII: 4 A 3 A E 4 5 G 1 3 E 1 3 8 6 4 0 i Data : 69 NU NU NU Hex : 34 41 33 41 45 34 35 47 36 31 45 30 33 30 33 32 30 6A 00 00 00 ASCII: 4 A 3 A E 4 5 G 6 1 E 0 3 0 3 2 0 j Data : 6A NU NU NU Hex: ASCII: Data: