June 19Jun 19 Body: Hi everyone, I am trying to extract 3D character models from Ben 10: Protector of Earth (PS2), developed by High Voltage Software (Omni Engine). I successfully unpacked the main GAME.WAD and GAME.DIR using the standard QuickBMS script. According to the extracted levels.txt, the main player models and animations are inside a file named 99_95.pss (~34.5 MB). The Problem: The .pss extension is fake. When opening the file in a hex editor, the header actually reads BIGB1 and mentions <Strat Wad>. This is a custom Omni Engine archive container. What I've tried: Standard ea_big4.bms: Fails with the error: the signature "BIGB" doesn't match the one expected by the script BIG4. ininja.bms (since I-Ninja runs on the same engine): Fails because the script expects a split .dir dictionary file, but these .pss files are standalone containers. You can clearly see raw PS2 files (like RIFF WAVE audio) sitting unencrypted inside the hex, so the data isn't heavily compressed, it's just locked in this custom BIGB container. Could someone please take a look and help me write a QuickBMS or Python script to unpack the internal files from this BIGB Strat Wad? Link to the sample file (99_95.pss): > [Paste your Google Drive / MEGA link here] Hex screenshot: [Attach your screenshot of the Hex Editor showing the BIGB1 header here] Any help or pointers to existing High Voltage Software tools would be massively appreciated! Thank you! https://www.mediafire.com/folder/qk0wmy2tv6kei/Ben+10+Protector+of+Earth+PS2+Wad+Extracted
June 19Jun 19 Localization Just from visually looking at some of the files, I wonder if the format is something like this: +---------------------------------------+ | Ben 10 Protector of Earth [PS2] *.pss | +---------------------------------------+ // HEADER 4 - Header (BIGB) 4 - Header Length (492) 492 - Unknown // RIFF DATA 4 - null 4 - VAG Data Offset [*2048] X - Compressed RIFF Data X - null Padding to a multiple of 2048 bytes // VAG DATA X - VAG Data Stream X - null Padding to a multiple of 2048 bytes It looks like the RIFF data might be compressed, as some of the strings in there are obviously split in the middle, or are missing parts that might have been a repeat from earlier. It looks kinda like the remaining data might just be a single long VAG audio stream, or something like that. It seems to just be a continuous block of data with size 16 bytes, much like VAG audio looks. Not really sure how to take it from here though.
June 19Jun 19 Localization I've seen this format before, here's how I currently handle it which is obviously wrong (I think it's a compressed stream with different data/token tracks that I just extract raw currently) f = File(i,endian='<') asrt(f.read(4) == b'BIGB') do = 0x10 + f.readu32() v = f.readu32() asrt(v in {0x9D,0xA3}) f.skip(4) if v == 0xA3: asrt(f.readu8() == 1) x = b'Type: ' + f.readc(0x40).split(b'\0')[0] + b'\n\nName: ' + f.readc(0x28).split(b'\0')[0] + b'\n\ncmd: ' if v == 0xA3: f.padc(3) s3,s4,s1,s2,zs1,zs2 = f.readu32(),f.readu32(),f.readu32(),f.readu32(),f.readu32(),f.readu32() cmd = f.readc(0x100).split(b'\0')[0] writefile(o + '/$comment.txt',x + cmd + b'\n') cmd = cmd.split(b' ') if b'-ps2' in cmd: gex = guess_ext_ps2 else: gex = guess_ext f.seek(do) d = f.decompress(zs1,'none',usize=s1) # placeholder writefile(f'{o}/1.cmp',d) d = f.decompress(zs2,'none',usize=s2) writefile(f'{o}/2.cmp',d) f.align(0x800) if s3: d = f.readc(s3) writefile(f'{o}/3.{gex(d)}',d) f.align(0x800) if s4: d = f.readc(s4) writefile(f'{o}/4.{gex(d)}',d) I'm looking into the executable and I'm seeing some sort of custom scripting/relocation format in the file which will be a pain lol
June 19Jun 19 Localization added support, only extracts audio currently as I've no clue how the 3d models (AMPC) knows it's offsets https://github.com/smiRaphi/UniPyX (https://github.com/smiRaphi/UniPyX/commit/46a9f811f79d84a93e8ec9f3480f717ab25e54b6) Also to play the audios, you'll need a player that supports this specific format, only one I know is: https://github.com/librempeg/librempeg
June 20Jun 20 52 minutes ago, mrmaller1905 said: Excuse me, I'm looking for existing tools to unpack data from GAME.WAD. GAME.DIR have filenames and offsets from WAD. https://mega.nz/file/lHxRzZIS#83xBEPdQml2g9hg_MlZvhds3W_EBrH1PjDg7lIy4Fio You've hijacked this post with a pointless question - use the search first and you can easily find the answer to what you're asking.
June 20Jun 20 Localization 2 hours ago, DKDave said: You've hijacked this post with a pointless question - use the search first and you can easily find the answer to what you're asking. Did you move his post to the correct section?
June 20Jun 20 36 minutes ago, mrmaller1905 said: Did you move his post to the correct section? Yes, it was about 3D models, so that's a more appropriate section for it.
Create an account or sign in to comment