Open it with a text editor. Near the beginning you can see a math "MEGABYTES = 2", replace 2 with 10 (or more if you prefer). Now launch the script on "c_1_en.pak" and upload the two files it generates.
Ah maybe in the meantime try also the tools and script made for the first Risen/Gothic3, just in case the format is the same. For example this is the script I made some years ago: http://aluigi.org/bms/risen.bms
Ah right the 64bit fields. Wow I guess that quickbms didn't even have support for longlong when I wrote that script years ago Script 0.2.2 should work perfectly
ponaromixxx wrote:This for a large archive is suitable!
Nope, it doesn't even support compression mode 1 ('auto' for Risen 1 and Risen 2, 'zlib' for Risen 3 and ELEX). Well, and LFS (Large File Support) is broken. Use the updated QuickBMS script or this:
head { char8_t magic[4]; // "PAK " char8_t version[4]; // "V001" uint64_t unknown; // 0 uint64_t info_offset; // relative to head uint64_t info_size; // uint32_t, 0 } data { } info { root { char8_t magic[4]; // "VOL " uint32_t unknown; // 1 uint32_t name_offset; // relative to info uint32_t name_size; uint32_t file_offset; // relative to info uint32_t file_count; uint32_t jour_offset; // relative to info uint32_t jour_count; } jour[info.root.jour_count] { char8_t magic[4]; // "JOUR" uint32_t unknown[3]; } uint32_t sort[info.root.file_count]; file[info.root.file_count] { char8_t magic[4]; // "FILE" uint32_t unknown1; // 0 uint32_t name_offset; // relative to info.file[*] (into info.name) uint32_t path_offset; // relative to info.file[*] (into info.name) uint64_t data_offset; // relative to head (into data) uint32_t file_attrib; uint32_t unknown2; // 0 uint64_t file_ctime; uint64_t file_mtime; uint32_t file_size; uint32_t data_size; char8_t data_comp[4]; // "\0\0\0\0" (uncompressed), "ZLIB" uint32_t unknown3[3]; // 0, 0, 0 } char8_t name[info.root.name_size]; }
Pure guesswork based on looking at the file with a hex-editor. Format is neither supported by Risenaut, nor Elexebra (it's unlikely that I will add support for it - so you might create a QuickBMS script...).
hhrhhr wrote:question: is this file contains whole updated files or only patches of in-game resources?
It seems to contain the complete files with the new revision, that replace/override the entries in the original PAK (no incremental updates, would have been needlessly complex).
ps: note that name/path_offset are relative to the current file entry, not the file table
Can someone provide the data/packed/c_1_na.p00 file? If it's very big go with the filecutter script. I need it to be 100% sure of the script I'm writing.
I have implemented this "PAK " format in the same risen script because, as far as I know after a google search, only the risen-like games on GOG use this format (search: gog patch "p00").
Just drag your .hdr file to r3resman and get .hdrdoc, open it through a text editor, you can also convert it back to .hdr
Thnx for info! I also wrote my own script to extract the needed data in the format I need
I have one more question, maybe someone knows the answer I'm looking for "a connection" between "entity internal name" and its localized name, for example:
It_Misc_BartoxHead_Arx (found inside w_quests.hdr) and 0xb430f5ac > Bartox's Head (english text from w_strings.bin)
ID|German_Text|English_Text|French_Text|Italian_Text|Spanish_Text|Polish_Text|Russian_Text|Czech_Text|German_StageDir|English_StageDir|French_StageDir|Italian_StageDir|Spanish_StageDir|Polish_StageDir|Russian_StageDir|Czech_StageDir b430f5ac|Bartox Schädel|Bartox's Head|Tête de Bartox|Testa di Bartox|Cabeza de Bartox|Głowa Bartoxa|Голова Бартокса|Bartoxova hlava|||||||| 9affe4a5|Er wurde post mortem abgetrennt.|Bartox's head, removed post mortem.|La tête de Bartox, prélevée post mortem.|La testa di Bartox, rimossa dopo la morte.|La cabeza de Bartox, se la cortaron tras su muerte.|Głowa Bartoxa, usunięta po jego śmierci.|Голова Бартокса, отделенная от тела уже после смерти.|Bartoxova hlava, odejmutá post mortem.||||||||