God of War series - WAD files

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Sajjad_Rahim
Posts: 64
Joined: Sat Jan 10, 2015 10:03 am

God of War III Remastered PS4 .wad

Post by Sajjad_Rahim »

Image

script in this thread
viewtopic.php?f=9&t=325


but i have error

Image
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: God of War series - WAD files

Post by aluigi »

@Sajjad_Rahim
I have moved your post in that topic since it's the same stuff apparently.
Anyway I think you can just ignore that error because you have already extracted 99% of the file, there is nothing else to dump :)
Sajjad_Rahim
Posts: 64
Joined: Sat Jan 10, 2015 10:03 am

Re: God of War series - WAD files

Post by Sajjad_Rahim »

aluigi wrote:@Sajjad_Rahim
I have moved your post in that topic since it's the same stuff apparently.
Anyway I think you can just ignore that error because you have already extracted 99% of the file, there is nothing else to dump :)


even its say 99%, its not extract all files

like
TXR_Copperplate_en
TXR_GoWIII_en
SMF_0
SMF_1

you can see all this files in hxd.

the script not working 100%
Sajjad_Rahim
Posts: 64
Joined: Sat Jan 10, 2015 10:03 am

Re: God of War series - WAD files

Post by Sajjad_Rahim »

here sample file from God of War 2018 PS4

Image
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: God of War series - WAD files

Post by aluigi »

There is no official script released for this game, just some experimental script for which I can provide no support.
If the last script provided by Wulf doesn't work then there is no solution.
vigneshvampire
Posts: 9
Joined: Mon Dec 17, 2018 12:37 pm

Re: God of War series - WAD files

Post by vigneshvampire »

Actually i try to extract God of war 3 WAD files,RiotWadExtractor Doesn't working it all ways show some error,If any other way to extract GOW3,GOW AC,GOW vol1 whatever i wanna extract wad files then try mod something then repack it.i want tool if you have give me..this is my dream
Wulf
Posts: 49
Joined: Mon Oct 27, 2014 8:30 pm

Re: God of War series - WAD files

Post by Wulf »

Ah, God of War.... How long it has been.

I have returned to this game, somewhat older, but wiser in the ways of the byte.

I have decided that these WADs shall surrender themselves fully to my will and divulge their precious secrets to me.

God of War 1. PS2.

Handler initialization for chunks:

Code: Select all

  RegisterIFFChunkFunc(0x18,IFFProcessDynaString);
  RegisterIFFChunkFunc(0x1e,IFFProcessClientParm);
  RegisterIFFChunkFunc(0x28,IFFProcessGroupStart);
  RegisterIFFChunkFunc(0x32,IFFProcessGroupEnd);
  RegisterIFFChunkFunc(0x3c,IFFActivate);
  RegisterIFFChunkFunc(0x46,IFFPushContext);
  RegisterIFFChunkFunc(0x50,IFFPopContext);
  RegisterIFFChunkFunc(0x29a,IFFPushContext);
  RegisterIFFChunkFunc(0x309,IFFPopContext);
  RegisterIFFChunkFunc(0x6e,IFFProcessDataBlock);
  RegisterIFFChunkFunc(0x6f,IFFProcessDataBlockWLength);
  RegisterIFFChunkFunc(0x70,IFFProcessDataBlockAlign16);
  RegisterIFFChunkFunc(0x71,FUN_0017eb40);
  RegisterIFFChunkFunc(0x72,FUN_0017ead0);
  RegisterIFFChunkFunc(0x378,IFFPushHeapWrapper);
  RegisterIFFChunkFunc(0x3E7,IFFPopHeapWrapper);
  RegisterIFFChunkFunc(0xC8,FUN_0014c258);


First chunk of data from R_PERM.WAD

Code: Select all

78030000 08000000 5741445F 525F5065 
726D0000 00000000 00000000 00000000
FFFFFFFF FFFFFFFF 00000000 00000000

28000000 00000000 47726F75 70537461
72740000 00000000 00000000 00000000

1E000000 38000000 5741445F 525F5065
726D0000 00000000 00000000 00000000
1B000080 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
FFFFFFFF FFFFFFFF 00000000 00000000

Each chunk header is 0x20 long.
0x0 is the chunk identifier that says which handler its passed to.
0x4 is the size of the data belonging to the chunk after the header. Pad to next 0x10 if not multiple of 0x10.
0x8 is the name of the chunk.

First bytes of first chunk are 0x378, it calls IFFPushHeapWrapper. 8 bytes data, pad to 0x10, + 0x20 header size, we're at 0x30.
First bytes of second chunk are 0x28, it calls IFFProcessGroupStart. 0 bytes data, 0x20 header size, we're at 0x50.
First bytes are 0x1E, it calls IFFProcessClientParm. Yada, yada.


See that 0x1B in the data under the 0x1E?

That's a whole new section of handlers.

Code: Select all

  BasicServer("Master_Server",0,5,100,100,0x7fff);
  MultiServer("WadServer",5,0x1b,0x80,0x80,0x7f0f,0,0);
  BasicServer("ProServer",5,10,0,0,0x7fff);
  MultiServer("GOServer",5,1,0x200,0x200,0x5f00,0x80,0x80);
  MultiServer("AnimServer",5,3,0x80,0x80,0x7100,0x100,0x100);
  MultiServer("BhvrServer",5,0x17,0x80,0x80,0x7002,0x82,0x82);
  BasicServer("EvtServer",5,0x15,0,0,0x7001);
  MultiServer("CollisionServer",5,0x11,0x80,0x80,0x6200,200,200);
  MultiServer("ScriptServer",5,4,0x80,0x80,0x6000,0x400,0x400);
  MultiServer("CameraServer",5,9,0x80,0x80,0x5e00,0x40,0x40);
  MultiServer("WaypointServer",5,0x14,0x80,0x80,0x5e00,0x40,0x40);
  MultiServer("EffectsServer",5,0x1e,0x80,0x80,0x5e00,0x200,0x200);
  MultiServer("LightServer",5,6,100,100,0x5d00,0x80,0x80);
  MultiServer("MatServer",5,8,0x200,0x200,0x5c00,0x200,0x200);
  MultiServer("TextureServer",5,7,0x80,0x80,0x5b00,0x200,0x200);
  MultiServer("GfxClutServer",5,0xc,0x80,0x80,0x5a00,0x200,0x200);
  MultiServer("EmitterServer",5,0x1a,0x80,0x80,0x5902,1000,1000);
  MultiServer("SoundServer",5,0x18,0x80,0x80,0x5901,1000,1000);
  MultiServer("renMasterSvr",5,0xd,100,100,0x5900,0x8000,0x4b000);
  MultiServer("renModelServer",0xd,0xf,0x80,0x80,0x1000,500,500);
  MultiServer("renParticleSvr",0xd,0x13,0x80,0x80,0x1000,1000,1000);
  MultiServer("renFlashServer",0xd,0x21,0x80,0x80,0x1000,500,500);
  MultiServer("renLineServer",0xd,0x23,0x80,0x80,0x1000,500,500);
  MultiServer("renShadowServer",0xd,0x27,0x80,0x80,0x1000,0x40,0x40);
  MultiServer("renEEPrimSvr",0xd,0x1c,0x80,0x80,0x1000,500,500);
  BasicServer("renPrimMaster",5,2,0x80,0x80,0x5700);
  BasicServer("renSTriStripSvr",2,0x1d,0x80,0x80,0x3000);
  BasicServer("renTriStripSvr",2,0xe,0x80,0x80,0x2000);
  BasicServer("renPtclPrimSvr",2,0x20,0x80,0x80,0x1000);
  BasicServer("renLStripSvr",2,0x24,0x80,0x80,0x800);
  BasicServer("renFlashPrimSvr",2,0x22,0x80,0x80,0x500);
  BasicServer("EpiServer",5,0xb,0,0,0);
  EngineServerContext("GFXX",0xc);
  EngineServerContext("TXRX",7);
  EngineServerContext("MATX",8);
  EngineServerContext("SNDX",0x18);
  EngineServerContext("LGTX",6);
  EngineServerContext("FLPX",0x21);
  EngineServerContext("LINE",0x23);

Master_Server sets itself up under server 0 as server 5.
WadServer sets itself up under server 5 as server 0x1b.

And that's enough pointless data dump here.

I'll update with more progress as I decode what it does with the WADs.
vigneshvampire
Posts: 9
Joined: Mon Dec 17, 2018 12:37 pm

Re: God of War series - WAD files

Post by vigneshvampire »

Fine i use PS3GameExtractor unpack to GOW3 .PSARC

Image

Image

After extracting R_HERCULES10 i got more then 8.5k files fine after how i repack wad file ...

Image

can u make god of war 3 wad browser like this,i want to mod some characters and repack gow3 .wad


Image
Karol Jill
Posts: 7
Joined: Fri May 22, 2020 5:41 am

Re: God of War series - WAD files

Post by Karol Jill »

Hello guys, can someone help me with a script that will extract and reimpport this file. I change the name of the file extension only to .WAD, but when I use this Script that I got here, which I will also attach below, I get an error !, please can someone help me and create a Script for this file, or modify what I attached to extract and reimport the files, please guys ...
Ramona
Posts: 5
Joined: Fri Mar 27, 2020 10:51 pm

Re: God of War series - WAD files

Post by Ramona »

Karol Jill wrote:Hello guys, can someone help me with a script that will extract and reimpport this file. I change the name of the file extension only to .WAD, but when I use this Script that I got here, which I will also attach below, I get an error !, please can someone help me and create a Script for this file, or modify what I attached to extract and reimport the files, please guys ...


I also really wanted a script that could extract and re-import this file, it is WAD.PATCH, the available scripts do not work on it, please guys, help us, I'm a layman, from the bottom of my heart I love this game, help us .
DDust
Posts: 13
Joined: Fri Mar 13, 2020 2:45 pm

Re: God of War series - WAD files

Post by DDust »

Karol Jill wrote:Hello guys, can someone help me with a script that will extract and reimpport this file. I change the name of the file extension only to .WAD, but when I use this Script that I got here, which I will also attach below, I get an error !, please can someone help me and create a Script for this file, or modify what I attached to extract and reimport the files, please guys ...


.
I really wanted too, no script that already exists works in this file, I've tried several, help us, please...
Wulf
Posts: 49
Joined: Mon Oct 27, 2014 8:30 pm

Re: God of War series - WAD files

Post by Wulf »

I've updated the first post with a WIP 010 Editor template that I just started cobbling together. I don't expect it to be of much use to any end-users yet but it seems to properly parse every GoW1-PS2 WAD I've thrown at it. I'll try to bring the BMS script to parity in the next little bit.

Does anybody know a good viewer that might tolerate semi-dirty data that could understand GoW-PS2's TXR format, with separate GFX/PALette files?

And what model/texture program is vignesh screenshotting a few posts up there? I assume it won't work on the PS2 data, but looks interesting.