[00 F0] 000000: 20 00 00 00 00 00 04 00 <-- Possibly special meaning, as it is first (no parent) [01 F0] 000008: 28 00 00 00 00 00 00 F0 <-- Int pointer, two unknown bytes, short ID_of_parent_directory [02 F0] 000010: 31 00 00 00 00 00 01 F0 [03 F0] 000018: 3D 00 00 00 00 00 02 F0 000020: 84 64 61 74 61 data 01 F0 directory contents 00 000028: 85 73 74 61 67 65 stage 02 F0 directory contents 00 000031: 88 76 73 5F 63 72 6F 73 73 vs_cross 03 F0 directory contents 00 00003D: 0C 76 73 5F 63 72 6F 73 73 2E 6B 63 6C vs_cross.kcl 13 76 73 5F 63 72 6F 73 73 5F 30 30 5F 69 73 63 2E 62 69 6E vs_cross_00_isc.bin 10 76 73 5F 63 72 6F 73 73 5F 61 6C 6C 2E 62 6D 64 vs_cross_all.bmd 10 76 73 5F 63 72 6F 73 73 5F 69 63 67 2E 62 69 6E vs_cross_icg.bin 10 76 73 5F 63 72 6F 73 73 5F 69 63 6C 2E 62 69 6E vs_cross_icl.bin 00 FF FF So this means: "/" contains folder "data" which has contents [01 F0] "data" contains folder "stage" which has contents [02 F0] "stage" contains folder "vs_cross" which has contents [03 F0] "vs_cross" holds five files, as listed Directories: [0x80 | namelength] [name string] [ID of directory contents] Files: [0x7F & namelength] [name string] Directories and files listed sequentially. When done, terminate with a null. The whole thing ends with [FF FF]. .