Page 1 of 1

PC < Darksiders: Wrath of War .oppc archives

Posted: Fri Jun 29, 2012 10:12 pm
by Sartr0n
Hi.

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 :)

Re: Darksiders: Wrath of War .oppc archives

Posted: Sat Jun 30, 2012 4:35 pm
by Sartr0n
*bump* :roll:

Re: Darksiders: Wrath of War .oppc archives

Posted: Sun Jul 01, 2012 10:53 am
by Ekey
Look here

Re: Darksiders: Wrath of War .oppc archives

Posted: Sun Jul 01, 2012 1:19 pm
by Sartr0n
Ekey, i know this thread but i forgotten to say that i'm talking about the PC version of the game and this thread is useless.

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Sun Jul 01, 2012 2:11 pm
by aluigi
the easiest thing you can try is removing the "endian big" command from the script.
if you are lucky it may work

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Sun Jul 01, 2012 3:16 pm
by Sartr0n
aluigi wrote:the easiest thing you can try is removing the "endian big" command from the script.
if you are lucky it may work
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.

So, is there really a way to unpack\repack the .oppc archives or im completely lost :(

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Wed Jul 04, 2012 10:29 am
by Sartr0n
Is anyone interested in this game or no one knows how to "hack" the .oppc format?

I really need a way to unpack few .oppc archives (and repack them), but im a noobie (i mean that i don't understand from programming and that's why i have created this thread, if there is anyone who can help out)

:o

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Wed Jul 04, 2012 11:58 am
by pivke
Hey,
maybe you upload a small samplefile, so that we can take a look at it?

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Wed Jul 04, 2012 2:37 pm
by Sartr0n
pivke, i can't post a link here because the new rules, but anyone who wants to look at the .oppc archives just can PM me so i can send a link.

By the way, pivke, i have send you a link - read your PM :)

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Sat Jul 07, 2012 11:58 am
by Sartr0n
Did anyone is interested or no? [roll] :ninja:

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Sat Jul 07, 2012 1:30 pm
by Ekey
Weekends, relax :)

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Wed Jul 11, 2012 12:27 pm
by Sartr0n
Well, here are one sample file inside the .rar archive in case "someone" want to do something :wtf:

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Sat Jul 28, 2012 3:24 pm
by Sartr0n
So, nothing...

*bump*

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Fri May 02, 2014 1:53 pm
by zaramot
Hi guys! I want to bump this thread. I really would like to extract content from .oppc archives. Game Warhammer: Space Marine using same format (newer version of it I guess) here's specs for Space Marine .oppc, I'm sure they didn't change much for Darksiders

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)
Here's also sample .opp c+ sorce for the .oppc extraction tool
https://www.mediafire.com/?riuxx51o61zt476
Thanks in advance for any help

Re: PC < Darksiders: Wrath of War .oppc archives

Posted: Tue May 06, 2014 12:34 pm
by shakotay2
The bms script of WRS which Ekey pointed to is the key.

Guess you don't need it any more but here's the modified script for oppc files:

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 ;
As you may see I didn't bother splitting up the files. Starting points in the extracted .bin should be the (file?) names logged by the script. But for ui_icons_small.oppc there aren't any contained in bunchOfFiles.bin - so splitting it up the before the 68 "DDS" strings does the trick (see attachment).

I checked these files:
ui_icons_small.oppc
AbyssalHorse01.oppc, cpr size: 775802 size 1019952
angel_fallen.oppc, cpr size: 1430920 -> size 2237271

Here's the first and the last icon from ui_icons_small:
ui_small_icons.JPG