Page 1 of 1
[Request] Heroes Scions of Phoenix
Posted: Sat Feb 18, 2012 9:51 pm
by CriticalError
Ok guys the game have .pak format so well chrrox make a script for unpack it but all files I get have 0 bytes, so maybe somebody can take a look files.
Here is the bms script of chrrox
Code: Select all
# Heroes:Scions of Phoenix Online
# script for QuickBMS http://aluigi.org/papers.htm#quickbms
comtype deflate
for
findloc start string "UZ\x03\x04"
goto start
idstring "UZ\x03\x04"
get ver short
get flag short
get method short
get timedate long
get crc long
get comp_size long
get uncomp_size long
get name_len short
get extra_len short
filexor 0xb2
getdstring name name_len
filexor ""
getdstring extra extra_len
savepos offset
if method == 0
Log name offset uncomp_size
elif method == 8
CLog name offset comp_size uncomp_size
else
print "unsupported compression method %method%"
cleanexit
endif
math offset += comp_size
goto offset
next
Heroes Scions of Phoenix Archive Research
Re: [Request] Heroes Scions of Phoenix
Posted: Sat Feb 18, 2012 11:31 pm
by finale00
I think I can see why the script skips to all of the "UZ\x03\x04", but that is not the right way to do it.
For the cases where the "Flag" has value 9, these are when you are reading the primitives and models.
It looks like images have "method" value of 8.
Check out the attached file.
I've cut out two file entries based on idstring, and if you jump to the 2nd idstring, you'll see two integers right before it.
Now highlight all of the ""UZ\x03\x04" and then go to the second one.
Look at the previous 16 bytes, and you'll see this
Code: Select all
char[4] "UZ\x07\x08"
dword ?
dword compressed size
dword size
It should not be coincidental that the size of the data is exactly the size that's shown.
However it doesn't seem like the compression method used is deflate.
Try this out:
Code: Select all
# Heroes:Scions of Phoenix Online
# script for QuickBMS http://aluigi.org/papers.htm#quickbms
# updated Feb 18, 2012 by Tsukihime
for
findloc start string "UZ\x03\x04"
goto start
idstring "UZ\x03\x04"
get ver short
get flag short
get method short
get timedate long
get crc long
get comp_size long
get uncomp_size long
get name_len short
get extra_len short
filexor 0xb2
getdstring name name_len
filexor ""
getdstring extra extra_len
savepos offset
if flag == 9
#comtype ???
FindLoc NEXT STRING "UZ\x07\x08"
goto NEXT
idstring "UZ\x07\x08"
get unk LONG
get ZSIZE long
get SIZE long
savepos curr
#clog NAME offset ZSIZE SIZE --- I don't know compression format
print "%NAME% %ZSIZE% %SIZE%"
goto curr
else
comtype deflate
if method == 0
Log name offset uncomp_size
elif method == 8
print %name%
CLog name offset comp_size uncomp_size
else
print "unsupported compression method %method%"
cleanexit
endif
math offset += comp_size
goto offset
endif
next
All you need is to specify the compression format used for those particular files when the flag == 9.
Maybe. Lol
Re: [Request] Heroes Scions of Phoenix
Posted: Sun Feb 19, 2012 12:59 am
by chrrox
they changed the archive format then the script did work perfectly on the archive when it was posted.
Re: [Request] Heroes Scions of Phoenix
Posted: Sun Feb 19, 2012 5:46 am
by CriticalError
yeah now it working, some dds files, just I unistall client fopr get space in my HD, later maybe I install it for put samples of models, thanks for support guys.
Re: [Request] Heroes Scions of Phoenix
Posted: Sun Feb 19, 2012 5:48 am
by finale00
The DDS files were always extracted correctly.
Just the models aren't getting extracted because we don't know compression format.
Re: [Request] Heroes Scions of Phoenix
Posted: Thu Jul 19, 2012 5:47 pm
by Rimbros
60mb pack file Heroes Scions of Phoenix in the repository.
Re: [Request] Heroes Scions of Phoenix
Posted: Thu Jul 19, 2012 8:17 pm
by CriticalError
Rimbros wrote:60mb pack file Heroes Scions of Phoenix in the repository.
well thanks a lot, I have a question, why all folder names inverted? I can't read it fine lol, I don't know is my problem.
Re: [Request] Heroes Scions of Phoenix
Posted: Thu Jul 19, 2012 9:11 pm
by finale00
That's the point.