[Xbox 360] Lost Odyssey .fpd

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
makc_ar
Posts: 1193
Joined: Sun Aug 17, 2014 7:27 pm

[Xbox 360] Lost Odyssey .fpd

Post by makc_ar »

Image

Someone tool or script export\impor?
Example: https://www17.zippyshare.com/v/pgBvAdft/file.html
Last edited by makc_ar on Wed Aug 22, 2018 4:21 pm, edited 1 time in total.
chrrox
Posts: 388
Joined: Thu Aug 07, 2014 10:28 pm

Re: [Xbox 360] Lost Odyssey .fpd

Post by chrrox »

LO.fpi contains the tables for all the archives.
at 0x20 in the file is the offsets to the different tables.
40 00 00 00
E0 02 00 00
90 5C 05 00
B0 02 00 00

the offsets need to be multiplied by 0x800 and you need to add 0x08 00 00 00 to the result.
AnonBaiter
Posts: 1125
Joined: Tue Feb 02, 2016 2:35 am

Re: [Xbox 360] Lost Odyssey .fpd

Post by AnonBaiter »

this one also kinda works

Code: Select all

offset value << 11
chrrox
Posts: 388
Joined: Thu Aug 07, 2014 10:28 pm

Re: [Xbox 360] Lost Odyssey .fpd

Post by chrrox »

xenon_loc.fpd - contains language text.

the first table at 0x40 is 0x30 in size for each entry.
the 2nd and 3rd int are offsets into the other tables that is based off the start of the 0x30 section.
the 2nd int has 0x18 per entry and contains the offsets to the files.

here is LO.fpd entries

unkown stuff
AE 40 00 10 E3 CC DB 0F 00 00 00 00 00 00 02 00 00 00 00 00 01 00 00 00
60 65 00 10 F8 6B 8A 0F 00 00 00 00 01 00 01 00 00 00 00 00 03 00 00 00
6A 65 00 10 B3 A2 DB 0F 00 00 00 00 01 00 06 00 00 00 00 00 06 00 00 00
35 00 00 10 F8 6B 8A 0F 00 00 00 00 02 00 01 00 00 00 00 00 04 00 00 00
63 65 00 10 F8 6B 8A 0F 00 00 00 00 04 00 01 00 00 00 00 00 05 00 00 00

file offsets and size 3rd and 5th int.
66 65 80 07 D1 D9 DA 0F 00 00 00 08 05 00 10 00 5B 32 03 00 00 00 00 00
66 65 80 08 D1 D9 DA 0F 67 00 00 08 03 00 10 00 5F E2 04 00 00 00 00 00
66 65 00 09 D1 D9 DA 0F 04 01 00 08 03 00 10 00 A9 E5 04 00 00 00 00 00
66 65 80 09 D1 D9 DA 0F A1 01 00 08 03 00 10 00 41 E0 04 00 00 00 00 00
66 65 00 0A D1 D9 DA 0F 3E 02 00 08 03 00 10 00 65 E4 04 00 00 00 00 00
66 65 80 0A D1 D9 DA 0F DB 02 00 08 03 00 10 00 E6 59 04 00 00 00 00 00
66 65 00 0C D1 D9 DA 0F 67 03 00 08 03 00 10 00 AD E3 04 00 00 00 00 00

Code: Select all

01 00 01 00 A0 02 00 00 50 5C 05 00 70 02 00 00 00 00 00 00 00 00 00 00 32 00 00 10 E0 CC DB 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 LO.fpd
01 00 0C 00 90 03 00 00 20 5C 05 00 40 02 00 00 00 00 00 00 37 00 00 10 3C 00 00 10 27 AE DB 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_chr.fpd
01 00 69 00 58 56 00 00 F0 5B 05 00 10 02 00 00 00 00 00 00 5F 08 00 10 65 08 00 10 D2 B8 D2 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_event.fpd
01 00 64 00 48 53 01 00 C0 5B 05 00 E0 01 00 00 00 00 00 00 BA 1F 00 10 C0 1F 00 10 56 AE DB 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_field.fpd
01 00 08 00 A8 B9 01 00 90 5B 05 00 B0 01 00 00 00 00 00 00 05 21 00 10 0A 21 00 10 E3 AE DB 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_obj.fpd
01 00 03 00 40 00 02 00 60 5B 05 00 80 01 00 00 00 00 00 00 B7 2E 00 10 BC 2E 00 10 6B BB D2 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_scr.fpd
01 00 26 00 40 08 03 00 30 5B 05 00 50 01 00 00 00 00 00 00 B8 3F 00 10 BD 3F 00 10 67 3A 4F 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_sys.fpd
01 00 06 00 88 14 03 00 00 5B 05 00 20 01 00 00 00 00 00 00 C2 41 00 10 C7 41 00 10 87 BD D2 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_vfx.fpd
01 00 04 02 E0 A0 03 00 D0 5A 05 00 F0 00 00 00 00 00 00 00 05 5F 00 10 0B 5F 00 10 1B AF DB 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_world.fpd
01 01 71 00 10 D1 03 00 A0 5A 05 00 C0 00 00 00 00 00 00 00 6F 65 00 10 75 65 00 10 22 AD DB 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_battle.fpd
01 01 07 00 C8 06 04 00 70 5A 05 00 90 00 00 00 00 00 00 00 C5 66 00 10 CA 66 00 10 05 BB D2 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_loc.fpd
01 01 0E 00 B8 5B 04 00 40 5A 05 00 60 00 00 00 00 00 00 00 4E 6C 00 10 53 6C 00 10 D8 CB DB 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_mov.fpd
01 01 07 00 D8 5C 04 00 10 5A 05 00 30 00 00 00 00 00 00 00 82 6C 00 10 87 6C 00 10 9A BC D2 0F 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 xenon_snd.fpd
Last edited by chrrox on Thu Aug 23, 2018 2:04 am, edited 2 times in total.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: [Xbox 360] Lost Odyssey .fpd

Post by aluigi »

In the meantime just some "skeletal" bms script for reading the fields (I'm not working on this):

Code: Select all

goto 0x1a
get ENTRIES1 short
get ENTRIES2 long
get OFFSET1 long
get OFFSET2 long

goto OFFSET1
for i = 0 < ENTRIES1
    getdstring DUMMY 0x30
next i

goto OFFSET2
for i = 0 < ENTRIES2
    get DUMMY1 long
    get DUMMY2 long
    get DUMMY3 long
    get DUMMY4 long
    get DUMMY5 long
    get DUMMY6 long
next i
chrrox
Posts: 388
Joined: Thu Aug 07, 2014 10:28 pm

Re: [Xbox 360] Lost Odyssey .fpd

Post by chrrox »

Here is a script for disc1 not sure if it works on anything else.

Code: Select all

set memory_file2 binary "\x4C\x4F\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x63\x68\x72\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x65\x76\x65\x6E\x74\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x66\x69\x65\x6C\x64\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x6F\x62\x6A\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x73\x63\x72\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x73\x79\x73\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x76\x66\x78\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x77\x6F\x72\x6C\x64\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x62\x61\x74\x74\x6C\x65\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x6C\x6F\x63\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x6D\x6F\x76\x2E\x66\x70\x64\x00\x78\x65\x6E\x6F\x6E\x5F\x73\x6E\x64\x2E\x66\x70\x64\x00"
open fdse "LO.fpi"

goto 0x1a
get ENTRIES1 short
get ENTRIES2 long
get OFFSET1 long
get OFFSET2 long
get OFFSET3 long
get OFFSET4 long

goto OFFSET1
for i = 0 < ENTRIES1
    getdstring DUMMY 0x4
    get TBLOFF1 long
    get TBLOFF2 long
    getdstring DUMMY 0x24
    putarray 0 i TBLOFF1
    putarray 1 i TBLOFF2
next i
    math OFFSET3 - OFFSET4
    putarray 0 13 OFFSET3

goto OFFSET2
for i = 0 < ENTRIES1
set j i
math j += 1
getarray FILES 0 j
getarray SUB 0 i
math FILES += 0x30
math FILES - SUB
math FILES / 0x18
print "%FILES%"
get PAIR string memory_file2
open fdse PAIR 1
set NAME PAIR
string NAME + \
for j = 0 < FILES
    get DUMMY1 long
    get DUMMY2 long
    get OFFSET long
    get DUMMY4 long
    get SIZE   long
    get DUMMY6 long
    math OFFSET & 0xFFFFFF
    math OFFSET * 0x800
    SET BNAME NAME
    STRING BNAME + j
    if SIZE > 0
    log BNAME OFFSET SIZE 1
    endif
next j
next i
Last edited by chrrox on Thu Aug 23, 2018 2:31 pm, edited 1 time in total.
makc_ar
Posts: 1193
Joined: Sun Aug 17, 2014 7:27 pm

Re: [Xbox 360] Lost Odyssey .fpd

Post by makc_ar »

Thank chrrox! This script error or...?
Image

Example xenon_snd.fpd:
xenon_snd.part1 https://www3.zippyshare.com/v/ckz4Y2En/file.html
xenon_snd.part2 https://www26.zippyshare.com/v/exhlHViP/file.html
xenon_snd.part3 https://www1.zippyshare.com/v/nBbm6Tvx/file.html

P.S. Support decompressed to compressed blocks https://www26.zippyshare.com/v/A9oH8jSs/file.html?
cpx header
Image
chrrox
Posts: 388
Joined: Thu Aug 07, 2014 10:28 pm

Re: [Xbox 360] Lost Odyssey .fpd

Post by chrrox »

2121 is the correct file count for the archive so you got all the files.
I forgot to subtract from the last entry so that is why you got that error.
you can ignore the error.

i fixed the script to not give that error now.
makc_ar
Posts: 1193
Joined: Sun Aug 17, 2014 7:27 pm

Re: [Xbox 360] Lost Odyssey .fpd

Post by makc_ar »

Thank a lot chrrox!

Someone script for cpx header https://www26.zippyshare.com/v/A9oH8jSs/file.html?
einherjar007
Posts: 35
Joined: Fri Sep 20, 2019 7:55 am

Re: [Xbox 360] Lost Odyssey .fpd

Post by einherjar007 »

Can someone re-upload the cpx script?