July 14Jul 14 Localization I need help to extract the game flies TXD , PIK for Army Men: Sarge's War, please. Edited yesterday at 12:41 AM1 day by erickkingofarmy14 update the post and title
July 14Jul 14 Localization right... let me just grab one of those files off the images you posted and I'll have a extractor coming right up, just need AI to generate the contents of the file so I actually have something to work with Edited July 14Jul 14 by NeoGT404
Tuesday at 02:54 AM3 days Author Localization okay... I'll patiently wait for your extractor Edited Tuesday at 12:05 PM3 days by erickkingofarmy14 update the text
Wednesday at 07:56 PM2 days Supporter You don't get it don't you? He want real samples to work with. You can't just guess the struct from image. Post the files you want to unpack.
Yesterday at 12:09 AM1 day Author Localization 4 hours ago, h3x3r said:You don't get it don't you? He want real samples to work with. You can't just guess the struct from image. Post the files you want to unpack.oh here h3x3r Npc.PIK for you take look... Npc.zip
21 hours ago21 hr Localization more than one file please and also the game executable Edited 21 hours ago21 hr by NeoGT404
11 hours ago11 hr Supporter LBALZSS2 compression maybe?Most probably...Struct for this file...//------------------------------------------------ //--- 010 Editor v14.0 Binary Template // // File: // Authors: // Version: // Purpose: // Category: // File Mask: // ID Bytes: // History: //------------------------------------------------ uint32 Unknown_0; uint32 Unknown_1; uint32 Unknown_2; char FileName[128]; uint32 DataDefOffset; uint32 Unknown_5; uint32 TOCOffset; uint32 ResourceCount; uint32 Unknown_6; uint32 Unknown_7; FSeek(DataDefOffset); uint32 DataBaseOffset; uint32 TotalDataSize; FSeek(TOCOffset); struct { string ResourceName; FSeek(startof(ResourceName)); FSkip(128); uint32 ResourceOffset; // + DataBaseOffset uint32 ResourceSize; }TOC[ResourceCount]<optimize=false>;Maybe others will share same struct. So as NeoGT suggested post more samples.And here's bms script. Not sure if will work on other files.############################## get BaseFileName basename get FileSize asize get FileExtension extension comtype lbalzss2 get DecompressedSize uint32 get CompressedSize uint32 getdstring Dummy 0x8 savepos Offset clog MEMORY_FILE Offset CompressedSize DecompressedSize goto 0 -1 getdstring Dummy 0xC -1 getdstring FileName 0x80 -1 get DataDefOffset uint32 -1 get Unknown_0 uint32 -1 get TOCOffset uint32 -1 get ResourceCount uint32 -1 goto DataDefOffset -1 get DataBaseOffset uint32 -1 get TotalDataSize uint32 -1 goto TOCOffset -1 for i = 0 < ResourceCount savepos StrOffset -1 get ResourceName string -1 goto StrOffset -1 getdstring Dummy 0x80 -1 get ResourceOffset uint32 -1 get ResourceSize uint32 -1 math ResourceOffset + DataBaseOffset -1 string Name p "%s/%s" BaseFileName ResourceName log Name ResourceOffset ResourceSize -1 next i Edited 7 hours ago7 hr by h3x3r
3 hours ago3 hr Localization I'd guess that there's also a directory structure thingy, so something like this: (but of course need more samples for confirmation)struct Data<auto size, auto name> { u8 tag_size = 4; if (tag_size > size) tag_size = size; u8 start[tag_size] @ $ [[name(name + ":start")]]; padding[size]; // so the size actually shows in the table u8 end[tag_size] @ ($ - tag_size) [[name(name + ":end")]]; }; fn fmtStr(auto a) { return a.v; }; struct Str<auto s> { u64 ep = $ + s; char v[while($ < ep && $[$])]; } [[fixed_size(s),format("fmtStr")]]; struct fe { Str<0x80> n; u32 o; u32 s; Data<s,n.v> d @ (parent.do + o); }; struct de { Str<0x80> n; u32 datio; u32 u1; // dir index? u32 feo; u32 fc; u32 ds1; u32 ds2; u32 do @ datio; u32 ds @ (datio + 4); fe fe[fc] @ feo; }; struct a { u32 u1; u32 u2; u32 dc; de de[dc]; }; a a @ 0;
Create an account or sign in to comment