Did anyone know if there's a wa way to unpack\pack an.oppc archive from Darksiders: Wrath of War?
I think that the archives are the same as the Warhammer 40,000k: Space Marine, but i'm not so sure.
If anyone needs a sample file, just write me PM

I have tried now and it's not working. Maybe there the format is not the same as the PC version (i mean that script for the PS3 version) or the script is not finished.aluigi wrote:the easiest thing you can try is removing the "endian big" command from the script.
if you are lucky it may work
Code: Select all
================
OPPC File Format
================
Version: 0.1.0
Author: Santos
================
------
HEADER
------
CHAR[4] signature (OBPK)
UINT8 flag? (0)
UINT32 major version? (10)
UINT32 minor version? (0)
UINT32 num files
UINT32 ? (8-53)
UINT32 header size (337)
UINT32 index size
UINT32 data size (uncompressed)
UINT32 ? (0)
UINT32 ? (0)
UINT32 ? (10000)
UINT32 ? (50000)
DATA[288] ?
-----
INDEX
-----
// Unknowns
UINT32 num unknowns
FOR (num unknowns) DO
UINT32 count
FOR (count) DO
UINT32 ?
UINT32 num strings
// Strings
FOR (num strings) DO
STRING string
UINT32 num types
// Types
FOR (num types) DO
DATA[8] type id
UINT32 num entries
// Entries
FOR (num types) DO
FOR (type -> num entries) DO
STRING name
STRING dir
UINT32 size
FLOAT ? (-1,0,n)
UINT32 size
UINT32 ? (0)
UINT32 ? (0)
UINT8 enum (4, 7, 8, 9)
DATA[enum] ?
// Padding
DATA[N} padding (00 up to index size)
----
DATA
----
UINT32 uncompressed data size
DATA[N] compressed data (to end of file)
Code: Select all
endian little
## Header
idstring "OBPK"
getdstring UNKNOWN 14
get NSTRUCTPOINTER long # >= 30
get DATAPOINTER long # next 4096 block - NSTRUCTPOINTER
print "NSTRUCTPOINTER %NSTRUCTPOINTER%, DATAPOINTER %DATAPOINTER%"
## EStruct ( count may be zero)
get ESTRUCTCOUNT long
for i = 0 < ESTRUCTCOUNT
getdstring UNKNOWN 8
get NAMELEN long
getdstring NAME NAMELEN
print "%i%: %NAME% (%NAMELEN%)"
next i
## NStruct
# goto NSTRUCTPOINTER
print "*** Nstruct ***"
get NSTRUCTCOUNT long
print "NSTRUCTCOUNT= %NSTRUCTCOUNT%"
for i = 0 < NSTRUCTCOUNT
getdstring UNKNOWN 8
get NAMELEN long
getdstring NAME NAMELEN
print "%i%: %NAME% (%NAMELEN%)"
next i
print "*** Nstruct 2 ***"
get unk_offs long
get NSTRUCTCOUNT2 long
print "NSTRUCTCOUNT2= %NSTRUCTCOUNT2%"
for i = 0 < NSTRUCTCOUNT2
getdstring UNKNOWN 8
get NAMELEN long
getdstring NAME NAMELEN
print "%i%: %NAME% (%NAMELEN%)"
next i
## ZLib data chunks
savepos LASTPOS
math DATASTART = DATAPOINTER
math DATASTART += NSTRUCTPOINTER
goto DATASTART
print "DATASTART: %DATASTART%"
get SIZE long
savepos POS
get ZSIZE asize
math ZSIZE -= POS
print "cpr size: %ZSIZE% size %size%"
# the oppc files should be small enough to make this ok
clog MEMORY_FILE POS ZSIZE SIZE
Log "bunchOfFiles.bin" 0 size MEMORY_FILE ;