Difference between revisions of "Argonaut WAD"

From XentaxWiki
Jump to: navigation, search
(Format Specifications)
(Games)
 
(11 intermediate revisions by the same user not shown)
Line 3: Line 3:
  
 
* ''' Format Type ''':    Archive <br>  
 
* ''' Format Type ''':    Archive <br>  
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br>
+
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian / Big Endian<br>
  
  
Line 12: Line 12:
 
// WAD file format
 
// WAD file format
  
4 bytes (uint32) - offset to the end of WAD archive  // in newer games 2048 needs to be added  
+
4 bytes (uint32) - offset to the end of WAD archive  // in newer games 2048  
 +
                                                      // needs to be added  
  
 
num_of_sections *
 
num_of_sections *
Line 25: Line 26:
 
WAD archive can store one or more sections from the list below:
 
WAD archive can store one or more sections from the list below:
  
* '''TPSX''': Textures
+
* '''TPSX / XSPT''': Textures
* '''SPSX''': Sound effects and ambient tracks
+
* '''SPSX / XSPS''': Sound effects and ambient tracks
* '''UNIF''': Fonts and text management  
+
* '''UNIF / FINU''': Fonts and text management  
* '''LPSX''': Localization, translated strings  
+
* '''LPSX / XSPL''': Localization, translated strings  
* '''DPSX''': 3D models, animations, actors and level
+
* '''DPSX / XSPD''': 3D models, animations, actors and level
* '''PORT''': Rendering groups / zones and more  
+
* '''PORT / TROP''': Rendering groups / zones and more  
* ''''END '''': Marks the end of the file. May contain some data.
+
* ''''END ' / ' DNE'''': Marks the end of the file. May contain some data like background music and sound effects.
 +
 
 +
=== TPSX (XSPT) section ===
 +
 
 +
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
 +
<pre>
 +
4 bytes (char) - signature  // "XSPT"
 +
4 bytes (uint32) - section size
 +
x bytes - texture header
 +
x bytes - texture data
 +
</pre>
 +
</div>
 +
 
 +
=== SPSX (XSPS) section ===
 +
 
 +
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
 +
<pre>
 +
4 bytes (char) - signature  // "XSPS"
 +
4 bytes (uint32) - section size
 +
x bytes - SPSX flags
 +
x bytes - common sound effects count
 +
</pre>
 +
</div>
 +
 
 +
=== UNIF (FINU) section ===
 +
 
 +
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
 +
<pre>
 +
//HEADER
 +
4 bytes (uint32) - signature "FINU"
 +
4 bytes (uint32) - chunk size
 +
2 bytes - unknown // char table size * 2 (?)
 +
2 bytes (uint16) - number of supported languages?
 +
4 bytes (uint32) - number of entries in char table
 +
4 bytes - unknwon
 +
2 bytes - unknown  // size of some rel_offsets data block? (look below)
 +
 
 +
 
 +
//CHARACTER TABLE
 +
num_of_entries *
 +
{
 +
  2 bytes - unknown  // always "\x00\x00"
 +
  2 bytes - unknown  // height?
 +
  2 bytes - character
 +
  2 bytes - some relative offset
 +
}
 +
</pre>
 +
</div>
 +
 
 +
=== LPSX (XSPL) section ===
 +
 
 +
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
 +
<pre>
 +
//HEADER
 +
4 bytes (char) - signature "XSPL"
 +
4 bytes (uint32) - chunk size
 +
4 bytes (uint32) - number of supported languages in chunk
 +
4 bytes (uint32) - number of strings / 4    // 4 = 3 languages + 1 null string
 +
4 bytes - unknown
 +
 
 +
 
 +
// OFFSET TABLE
 +
num_of_entries *
 +
{
 +
  4 bytes (uint32) - string relative offset
 +
}
 +
 
 +
 
 +
//STRING TABLE
 +
//Note: lower characters "a-z" are encrypted,
 +
//moved in ASCII table 1 character left
 +
//Note2: special characters are encrypted
 +
//in different way, check .py script for details
 +
 
 +
num_of_entries *
 +
{
 +
  12 bytes - identifier  // #0#$01 etc. 
 +
  x bytes - string
 +
  2 bytes - null terminator // "\x00\x00"
 +
}
 +
</pre>
 +
</div>
  
 
=== MultiEx BMS Script ===  
 
=== MultiEx BMS Script ===  
Line 43: Line 125:
 
=== Games ===  
 
=== Games ===  
 
List of games using this file format:
 
List of games using this file format:
 +
* Aladdin in Nasira's Revenge
 +
* Alien Resurrection
 
* Croc 2 (PS1) (*.WAD)
 
* Croc 2 (PS1) (*.WAD)
 
* Harry Potter and the Sorcerer's Stone / Harry Potter and the Philosopher's Stone (PS1) (*.WAD)
 
* Harry Potter and the Sorcerer's Stone / Harry Potter and the Philosopher's Stone (PS1) (*.WAD)
 
* Harry Potter and the Chamber of Secrets (PS1) (*.WAD)
 
* Harry Potter and the Chamber of Secrets (PS1) (*.WAD)
 +
* The Emperor's New Groove
  
 
=== Compatible Programs ===  
 
=== Compatible Programs ===  
  
 
* [https://github.com/OverSurge/PS1-Argonaut-Reverse PS1-Argonaut-Reverse Tools]
 
* [https://github.com/OverSurge/PS1-Argonaut-Reverse PS1-Argonaut-Reverse Tools]
 +
* [https://github.com/bartlomiejduda/Tools/blob/master/NEW%20Tools/Harry%20Potter%20and%20the%20Sorcerer's%20Stone%20(PS1)/Harry_Potter_SS_PS1_TEXT_Tool.py Harry Potter SS PS1 TEXT Tool] (support for XSPL chunk only)
 
<br/><br>
 
<br/><br>
  

Latest revision as of 13:44, 24 July 2021

Back to index | Edit this page

WAD

  • Format Type : Archive
  • Endian Order : Little Endian / Big Endian


Format Specifications

// WAD file format

4 bytes (uint32) - offset to the end of WAD archive   // in newer games 2048 
                                                      // needs to be added 

num_of_sections *
{
   x bytes - section data
}

Sections

WAD archive can store one or more sections from the list below:

  • TPSX / XSPT: Textures
  • SPSX / XSPS: Sound effects and ambient tracks
  • UNIF / FINU: Fonts and text management
  • LPSX / XSPL: Localization, translated strings
  • DPSX / XSPD: 3D models, animations, actors and level
  • PORT / TROP: Rendering groups / zones and more
  • 'END ' / ' DNE': Marks the end of the file. May contain some data like background music and sound effects.

TPSX (XSPT) section

4 bytes (char) - signature  // "XSPT"
4 bytes (uint32) - section size
x bytes - texture header
x bytes - texture data

SPSX (XSPS) section

4 bytes (char) - signature  // "XSPS"
4 bytes (uint32) - section size
x bytes - SPSX flags
x bytes - common sound effects count

UNIF (FINU) section

//HEADER
4 bytes (uint32) - signature "FINU"
4 bytes (uint32) - chunk size
2 bytes - unknown // char table size * 2 (?)
2 bytes (uint16) - number of supported languages?
4 bytes (uint32) - number of entries in char table
4 bytes - unknwon
2 bytes - unknown  // size of some rel_offsets data block? (look below)


//CHARACTER TABLE
num_of_entries *
{
  2 bytes - unknown  // always "\x00\x00"
  2 bytes - unknown  // height?
  2 bytes - character
  2 bytes - some relative offset
}

LPSX (XSPL) section

//HEADER
4 bytes (char) - signature "XSPL"
4 bytes (uint32) - chunk size
4 bytes (uint32) - number of supported languages in chunk
4 bytes (uint32) - number of strings / 4     // 4 = 3 languages + 1 null string
4 bytes - unknown


// OFFSET TABLE
num_of_entries *
{ 
  4 bytes (uint32) - string relative offset
}


//STRING TABLE
//Note: lower characters "a-z" are encrypted,
//moved in ASCII table 1 character left
//Note2: special characters are encrypted
//in different way, check .py script for details

num_of_entries *
{
  12 bytes - identifier   // #0#$01 etc.   
  x bytes - string
  2 bytes - null terminator // "\x00\x00"
}

MultiEx BMS Script

Not written yet.

Notes and Comments

  • This file format occurs in games made by Argonaut.

Games

List of games using this file format:

  • Aladdin in Nasira's Revenge
  • Alien Resurrection
  • Croc 2 (PS1) (*.WAD)
  • Harry Potter and the Sorcerer's Stone / Harry Potter and the Philosopher's Stone (PS1) (*.WAD)
  • Harry Potter and the Chamber of Secrets (PS1) (*.WAD)
  • The Emperor's New Groove

Compatible Programs