Ok, here is what I quickly found out. The structure of the index file:
Code: Select all
idstring "xobx"
get ENTRIES long
get ZERO long
get UNK long # 1
get TOCPOS long
get UNK long # 1
for i = 0 < ENTRIES
get INDPOS long
get ZERO long
next i
get UNK long # 6
get ZERO long
get FOOTOFF long # zero block after file names
getDstring IND 4 # "indx"
get UNK long # 8
goto TOCPOS
get FILES long
get VER long
for i = 0 < FILES
get NAMEL long
savepos BIAS
get NAMEPOS long
math NAMEPOS += BIAS
savepos MYOFF
goto NAMEPOS
getDstring NAME NAMEL
goto MYOFF
get IDENT long
get UNK long
getDstring TYPE 4
string NAME p "%s.%s" NAME TYPE
print "%UNK% %IDENT% %NAME%"
next i
No idea how to get from the starting entry to the according file name or which xbr it is located.
Notes:
- UNK1 is in ascending order from 61436 to 98585 with varying differences
- UNK2 is a some index sadly not corresponding to an xbr file (30 indexes, 40 xbr files)
- UNK3 is in descending order for each corresponding index block with difference 20 each time
- in the file table, the corresponding xbr file is listed after the first file in the archive
After the table are the file names, including the names of the xbr files in between, so 40 entries more than in the above TOC.
edit 1:58pm - better code with correct file names!