Page 1 of 2

Child of Light (.ipk)

Posted: Thu May 01, 2014 11:22 am
by merlinsvk
Child of Light uses UbiArt Framework engine (like Rayman Origins and Rayman Legends). Here is modified BMS for unpacking IPK archives. :)

Code: Select all

# Child of Light (PC / maybe Xbox 360 too)
# Based on BMS script for Rayman Legends (PC / Xbox 360)
# script for QuickBMS http://quickbms.aluigi.org

endian big
goto 0xc
get BASE_OFF long
goto 0x34	# 0x2c for Rayman Legends
get FILES long
for i = 0 < FILES
    get DUMMY1 long
    get SIZE long
    get ZSIZE long
    get TSTAMP longlong
    get OFFSET longlong
    if DUMMY1 == 2
        get DUMMY4 long
        get DUMMY5 long
    endif
    get FOLDERSZ long
   getdstring FOLDER FOLDERSZ
   get NAMESZ long
   getdstring NAME NAMESZ
   string FOLDER + NAME
   string NAME = FOLDER
    math OFFSET += BASE_OFF
    if ZSIZE == 0
        log NAME OFFSET SIZE
    else
        clog NAME OFFSET ZSIZE SIZE
    endif
   get DUMMY6 long
   get DUMMY7 long
next i

Re: Child of Light (.ipk)

Posted: Fri May 02, 2014 7:22 pm
by albert1905
merlinsvk wrote:Child of Light uses UbiArt Framework engine (like Rayman Origins and Rayman Legends). Here is modified BMS for unpacking IPK archives. :)

Code: Select all

# Child of Light (PC / maybe Xbox 360 too)
# Based on BMS script for Rayman Legends (PC / Xbox 360)
# script for QuickBMS http://quickbms.aluigi.org

endian big
goto 0xc
get BASE_OFF long
goto 0x34	# 0x2c for Rayman Legends
get FILES long
for i = 0 < FILES
    get DUMMY1 long
    get SIZE long
    get ZSIZE long
    get TSTAMP longlong
    get OFFSET longlong
    if DUMMY1 == 2
        get DUMMY4 long
        get DUMMY5 long
    endif
    get FOLDERSZ long
   getdstring FOLDER FOLDERSZ
   get NAMESZ long
   getdstring NAME NAMESZ
   string FOLDER + NAME
   string NAME = FOLDER
    math OFFSET += BASE_OFF
    if ZSIZE == 0
        log NAME OFFSET SIZE
    else
        clog NAME OFFSET ZSIZE SIZE
    endif
   get DUMMY6 long
   get DUMMY7 long
next i
Thanks a lot. But it doesn't work for templateinstance_pc32.ipk file.

Re: Child of Light (.ipk)

Posted: Fri May 02, 2014 8:51 pm
by merlinsvk
I know. That file is probably dummy. It should have 3000+ files, but there are only few of them.

Re: Child of Light (.ipk)

Posted: Mon May 05, 2014 11:40 am
by tomsolo
templateinstance_pc32.ipk its a dummy, descriptive/template file, no need to decompress.

If you want to run ChoL as extracted game, just decompress all other .ipk file*** - except templateinstance_pc32.ipk - in the game root. Rename / move these ipk files and voila game start.

If you want to make a translate, just open the localization_english.isg.ckd an hexeditor, and overwrite strings to what you want, but allways give the exact char numbers - a non ascii chars need two bytes.

The fonts it's a simple mapped DXT3 textures - see *tga* tag in filenames, just replace with photoshop to a non used char with your language specific character.

Image

Image

*** Need good order, because some archives contain another dummy files too.

Re: Child of Light (.ipk)

Posted: Tue May 06, 2014 5:31 am
by albert1905
tomsolo wrote:templateinstance_pc32.ipk its a dummy, descriptive/template file, no need to decompress.

If you want to run ChoL as extracted game, just decompress all other .ipk file*** - except templateinstance_pc32.ipk - in the game root. Rename / move these ipk files and voila game start.

If you want to make a translate, just open the localization_english.isg.ckd an hexeditor, and overwrite strings to what you want, but allways give the exact char numbers - a non ascii chars need two bytes.

The fonts it's a simple mapped DXT3 textures - see *tga* tag in filenames, just replace with photoshop to a non used char with your language specific character.

*** Need good order, because some archives contain another dummy files too.
No.. It is not easy to make a translation patch. Because no one can edit tfn.ckd files and work it on the game.
tfn.ckd file contains information(size and position..) about tga.ckd font file. I've tried to edit tfn.ckd file to exchange glyph's position but it won't work at all.
So it is impossible to make a one's own language font. Unicode number's are different from country. So I've tried to make a table file and edit font file..
But I was dropping with fatigue..

Re: Child of Light (.ipk)

Posted: Tue May 06, 2014 9:24 am
by tomsolo
albert1905 wrote: Because no one can edit tfn.ckd files and work it on the game. tfn.ckd file contains information(size and position..)
No, this is not true. I investigated templateinstance_pc32.ipk file and unfortunately yes it's contain some small files - like *tfn.ckd-s - but easily bypass: just replace all font's file path to something wrong in templateinstance_pc32.ipk file, like:

cache/itf_cooked/pc32/enginedata/misc/fonts/
to
cache/itf_cooked/pc32/enginedata/misc/font1/

Now engine use all *tfn.ckd files in the cache/itf_cooked/pc32/enginedata/misc/fonts/ folder.

The character encoding in localization file is UTF-8, but tfn.ckd use the UNICODE charmap.

I tried replace - avant_garde_md_32.tfn.ckd at 0x1FF0 - in the the Latin small letter o with tilde - õ - to the Latin small letter o with double acute - ő - and success. (00F5 to 0151)

In example the "Downloadable" word in hungarian "Letölthető", and before this modification i wrote "Letölthetõ" in localization file and replace Latin small letter o with tilde's bitmap to Latin small letter o with double acute texture.

I hope it's help for you but i know that hangul is more complicated.

Re: Child of Light (.ipk)

Posted: Tue May 06, 2014 4:10 pm
by albert1905
tomsolo wrote:
albert1905 wrote: Because no one can edit tfn.ckd files and work it on the game. tfn.ckd file contains information(size and position..)
No, this is not true. I investigated templateinstance_pc32.ipk file and unfortunately yes it's contain some small files - like *tfn.ckd-s - but easily bypass: just replace all font's file path to something wrong in templateinstance_pc32.ipk file, like:

cache/itf_cooked/pc32/enginedata/misc/fonts/
to
cache/itf_cooked/pc32/enginedata/misc/font1/

Now engine use all *tfn.ckd files in the cache/itf_cooked/pc32/enginedata/misc/fonts/ folder.

The character encoding in localization file is UTF-8, but tfn.ckd use the UNICODE charmap.

I tried replace - avant_garde_md_32.tfn.ckd at 0x1FF0 - in the the Latin small letter o with tilde - õ - to the Latin small letter o with double acute - ő - and success. (00F5 to 0151)

In example the "Downloadable" word in hungarian "Letölthető", and before this modification i wrote "Letölthetõ" in localization file and replace Latin small letter o with tilde's bitmap to Latin small letter o with double acute texture.

I hope it's help for you but i know that hangul is more complicated.
Thanks a lot! It worked for me. :keke:

Re: Child of Light (.ipk)

Posted: Mon May 26, 2014 2:21 pm
by albert1905
Is there a way to change Japanese voice to English voice?

Re: Child of Light (.ipk)

Posted: Mon Jul 21, 2014 2:33 am
by namquang93
merlinsvk wrote:Child of Light uses UbiArt Framework engine (like Rayman Origins and Rayman Legends). Here is modified BMS for unpacking IPK archives. :)

Code: Select all

# Child of Light (PC / maybe Xbox 360 too)
# Based on BMS script for Rayman Legends (PC / Xbox 360)
# script for QuickBMS http://quickbms.aluigi.org

endian big
goto 0xc
get BASE_OFF long
goto 0x34	# 0x2c for Rayman Legends
get FILES long
for i = 0 < FILES
    get DUMMY1 long
    get SIZE long
    get ZSIZE long
    get TSTAMP longlong
    get OFFSET longlong
    if DUMMY1 == 2
        get DUMMY4 long
        get DUMMY5 long
    endif
    get FOLDERSZ long
   getdstring FOLDER FOLDERSZ
   get NAMESZ long
   getdstring NAME NAMESZ
   string FOLDER + NAME
   string NAME = FOLDER
    math OFFSET += BASE_OFF
    if ZSIZE == 0
        log NAME OFFSET SIZE
    else
        clog NAME OFFSET ZSIZE SIZE
    endif
   get DUMMY6 long
   get DUMMY7 long
next i
Can you modify BMS script for Valiant Hearts The Great War (*.ipk), too? Thanks in advance !
And here is my screenshot:
Image

Re: Child of Light (.ipk)

Posted: Mon Jul 21, 2014 6:54 am
by albert1905

Re: Child of Light (.ipk)

Posted: Mon Jul 21, 2014 9:00 am
by namquang93
albert1905 wrote:Here it is. viewtopic.php?f=35&t=11715
Thanks! ^^

Re: Child of Light (.ipk)

Posted: Tue Jul 29, 2014 3:05 pm
by namquang93
albert1905 wrote:Here it is. viewtopic.php?f=35&t=11715
Hi! In command dos, how to choose yes to skip bigger file ? Thanks !

Re: Child of Light (.ipk)

Posted: Sat Oct 18, 2014 3:47 pm
by Arts
Hi,
i have problem with getting a file in format .dds

After extraction bootresourcemap_pc32.ipk in QuickBMS Editor with script

Code: Select all

# Child of Light (PC / maybe Xbox 360 too)
# Based on BMS script for Rayman Legends (PC / Xbox 360)
# script for QuickBMS http://quickbms.aluigi.org

endian big
goto 0xc
get BASE_OFF long
goto 0x34   # 0x2c for Rayman Legends
get FILES long
for i = 0 < FILES
    get DUMMY1 long
    get SIZE long
    get ZSIZE long
    get TSTAMP longlong
    get OFFSET longlong
    if DUMMY1 == 2
        get DUMMY4 long
        get DUMMY5 long
    endif
    get FOLDERSZ long
   getdstring FOLDER FOLDERSZ
   get NAMESZ long
   getdstring NAME NAMESZ
   string FOLDER + NAME
   string NAME = FOLDER
    math OFFSET += BASE_OFF
    if ZSIZE == 0
        log NAME OFFSET SIZE
    else
        clog NAME OFFSET ZSIZE SIZE
    endif
   get DUMMY6 long
   get DUMMY7 long
next i
I get the files in CKD format
using a script

Code: Select all

# .tga.ckd to .dds
get NAME basename
get SIZE asize
math SIZE -= 0x38
string NAME += ".dds"
log NAME 0x38 SIZE
i get a file in DDS format - but this file i can not open with Photoshop+DDS plugin
when i try to open DDS file - getting an error
"could not complete your request because file-format module cannot parse the file"

What am I doing wrong??
Please help...and sory for my bad english..

Re: Child of Light (.ipk)

Posted: Sat Oct 18, 2014 9:21 pm
by merlinsvk
Are you trying to convert .tga.ckd file? Because there are many other files with .ckd extension.

Re: Child of Light (.ipk)

Posted: Sat Oct 18, 2014 10:45 pm
by Arts
From here i got a script for converting .ckd to DDS
viewtopic.php?f=35&t=11715
last post say about script working correctly with Valiant Hearts The Great War

if this script work with files from game Valiant Hearts - why it don't work with files from game Child of Light???

Is there any other way to converting CKD files to DDS correctly from Child of Light??