Difference between revisions of "Argonaut WAD"
From XentaxWiki
(→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
Contents
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
- PS1-Argonaut-Reverse Tools
- Harry Potter SS PS1 TEXT Tool (support for XSPL chunk only)