(Ps3) White Knight Chronicles
Posted: Wed Sep 15, 2010 11:08 am
After you extract the psarc file you can use these scripts to extract the assets.
HPK extractor
Image to dds converter
HPK extractor
Code: Select all
get idstring long
endian big
get files long
get arcsize long
get nameend long
get namestart long
get baseoff long
get version long
get null long
savepos filestart
print %filestart%
for i = 0 < files
goto filestart
getdstring hash 0x10
get offset long
math offset + baseoff
get size long
get null1 long
get null2 long
savepos filestart
goto namestart
get name string
savepos namestart
log name offset size
next i
Code: Select all
Open FDDE p3igg 0
Open FDDE p3img 1
endian big
get idstring long 1
get unk long 1
get arcsize long 1
get null1 long 1
get baseoff long 1
getdstring unk01 0x14 1
get files long 1
get null long 1
get skip long 1
math skip + baseoff
goto skip 1
savepos filepos 1
for i = 0 < files
goto filepos 1
get nameoff long 1
get offset long 1
math nameoff + baseoff
get size long 1
get null long 1
get type byte 1
get unk021 byte 1
get unk022 byte 1
get unk023 byte 1
get unk03 long 1
get width1 byte 1
get width2 byte 1
get height1 byte 1
get height2 byte 1
getdstring null03 0x14 1
putVarChr MEMORY_FILE 0x11 width1 byte
putVarChr MEMORY_FILE 0x10 width2 byte
putVarChr MEMORY_FILE 0xD height1 byte
putVarChr MEMORY_FILE 0xC height2 byte
savepos filepos 1
goto nameoff 1
get name string 1
string name + ".dds"
callfunction addDDSheader
math SIZE + 0x80
log NAME 0 SIZE MEMORY_FILE
next i
startfunction addDDSheader
set MEMORY_FILE binary "\x44\x44\x53\x20\x7C\x00\x00\x00\x07\x10\x0A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x05\x00\x00\x00\x44\x58\x54\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x10\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
putVarChr MEMORY_FILE 0x11 width1 byte
putVarChr MEMORY_FILE 0x10 width2 byte
putVarChr MEMORY_FILE 0xD height1 byte
putVarChr MEMORY_FILE 0xC height2 byte
if type == 136
putVarChr MEMORY_FILE 0x57 0x35
endif
if type == 135
putVarChr MEMORY_FILE 0x57 0x33
endif
if type == 134
putVarChr MEMORY_FILE 0x57 0x31
endif
append
log MEMORY_FILE OFFSET SIZE
append
endfunction