Game Archive Help Thread by bxaimc at 9:02 AM EDT on June 30, 2011
In order to prevent the creation of space-wasting threads for one game archive and then disappearing in to the abyss of other now useless game archive questions, why not just ask over here so life could be easier for us to find these questions instead of leaving them unanswered due to being lost.
OK, it's been answered probably, sorry in advance... What tool to use to extract sound files from Ubisoft's .pck archive present in Assassin's Creed games? I understand ww2ogg can be used afterwards, I can manage that, but how to extract the damn sounds? Oh, please don't say hex editor or similar stuff, because I suck big time at those... Huge thanks!
SGB archive with SGH header file but vgmstream can't play them or the SGD file included.
EDIT: Mplayer can convert them just fine. But there's quite a few files. Could anyone write up a batch that will convert any extension to .wav in Mplayer?
EDIT #2: Never mind, after some messing around I managed to write up a batch script.
for %%i in (*.ext) DO mplayer.exe -ao pcm "%%i" -ao pcm:file="%%i".wav
There are only 3 pck files I'm looking at right now (from pc version of AC2), and they are 233, 239 and 528 MB in size. I would upload say, the first, but my net is incredibly slow these days, so I can't do that... Anyway, thank you for replying and willing to help Polokus.
# script for QuickBMS http://aluigi.org/papers.htm#quickbms
Endian little
# Main header IDString "AKPK" Get HEADER_TOTAL_SIZE long
Get HEADER_UNK1 long If HEADER_UNK1 != 1 Print "Strange HEADER_UNK1 = %HEADER_UNK1%, may crash..." EndIf
Get HEADER_EXTRA_DATA_SIZE long Get SIZE_OF_BLOCK1 long Get SIZE_OF_BLOCK2 long
SavePos TEMP_POS Math TEMP_POS += HEADER_EXTRA_DATA_SIZE GoTo TEMP_POS
# Block 1 Set EXTRACT_BLOCK_BASE_PATH string "1" CallFunction EXTRACT_BLOCK
# Block 2 Set EXTRACT_BLOCK_BASE_PATH string "2" CallFunction EXTRACT_BLOCK
# Function to extract a block # Set EXTRACT_BLOCK_BASE_PATH to the path where the files should be extracted before calling StartFunction EXTRACT_BLOCK Get BLOCK_NUM_ENTRIES long
For I = 0 < BLOCK_NUM_ENTRIES # Read the file entry Get ENTRY_ID long Get ENTRY_BLOCK_SIZE long Get ENTRY_SIZE long Get ENTRY_UNK1 long If ENTRY_UNK1 != 0 Print "Strange ENTRY_UNK1 = %ENTRY_UNK1%, may crash..." EndIf Get ENTRY_OFFSET_IN_BLOCKS long Get ENTRY_UNK2 long If ENTRY_UNK2 != 0 If ENTRY_UNK2 != 1 Print "Strange ENTRY_UNK2 = %ENTRY_UNK2%, may crash..." EndIf EndIf
SGH/B can either be PCM, ADPCM, AC3, and ATRAC3 SGX is the conbined header+data version.
The posted SGB is ATRAC3 based on the codec id. Looks like lossless ATRAC3 too. interesting :D
I don't think the SGH header is necessary as well as the other junk in the file since it has a smpl chunk with the standard RIFF header so i guess it'd be ok to get rid of that since it plays file with the ATRAC3 decoder.
I ran the script and I got 5711 (!) files without extension of various sizes - from just a few kb to 15-20 MB... Here are two example files, can you look at them and see if anything else can be done (to convert/play them) if they are usable at all, that is:
http://sendspace.com/file/kbuwlq
If they are, is there some batch script or something, considering there are so many of them...