DSM/Mitsubishi CAPS

From Jane Hacker Wiki
Revision as of 03:09, 19 April 2023 by WikiSysop (talk | contribs)
Jump to navigation Jump to search

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:

DAT - ?Data?