DDI Wad: Difference between revisions

From Research Realm
WWAD: wall ass
i'm gonna crack these other formats
 
Line 1: Line 1:
{{Infobox file format
{{Infobox file format
| name = DDI Wad
| name = DDI Wad
| icon =
| iconcaption =
| icon_size =
| screenshot =  
| screenshot =  
| screenshot_size =  
| screenshot_size =  
Line 9: Line 12:
| developer = [[Data Design Interactive]]
| developer = [[Data Design Interactive]]
| released = 1997
| released = 1997
| latest_release_version =
| latest_release_date = <!-- {{start date and age|YYYY|mm|dd|df=yes/no}} -->
| type = [[Wikipedia:Archive file format|Archive file]]
| type = [[Wikipedia:Archive file format|Archive file]]
| compression = Optional; see {{section link|#Rob Northern compression}}
| container_for = Video game files
| container_for = Video game files
| extended_from =
| extended_to =
| standard =
| free =
| open =
| url =
}}
}}


'''DDI Wad''' is an [[Wikipedia:Archive file format|archive file format]] developed by [[Data Design Interactive]] for storing files in video games. DDI Wad files usually use the file extension '''.wad'''.
'''DDI Wad''' is an [[Wikipedia:Archive file format|archive file format]] developed by [[Data Design Interactive]] for storing files in video games. DDI Wad files usually use the file extension '''.wad'''. The format was first used for the 1997 video game ''[[Wikipedia:Conquest Earth|Conquest Earth]]'' and was used regularly until Data Design ceased regular game development after 2010.


The DDI Wad format is not known to be related to other {{code|.WAD}} formats, such as [https://doomwiki.org/wiki/WAD ''Doom'' WAD] or [https://wiibrew.org/wiki/WAD_files Wii WAD] files.
The DDI Wad format is not known to be related to other {{code|.WAD}} formats, such as [https://doomwiki.org/wiki/WAD ''Doom'' WAD] or [https://wiibrew.org/wiki/WAD_files Wii WAD] files.


== File formats ==
== File format ==
Data Design Interactive used multiple versions of the WAD format between 1997 and 2010. At least three major revisions are known, plus two versions designed exclusively for [[Wikipedia:PlayStation (console)|PlayStation]] games.


=== ''Conquest Earth'' ===
=== ''Conquest Earth'' files ===
This section is for the WAD files used in ''Conquest Earth''. Unlike later formats, these Wads store file information ''after'' file data. Despite this, the way it stores file info seems similar to WADH Wads, meaning the WWADs LRR uses are the odd ones out? EVERYTHING here is guessing
''TBD''
 
{| class="wikitable"
|+ File structure
|-
! Type !! Value !! Description
|-
| colspan="2" | 0D 00 00 00 01 00 00 00 || ?
|-
| <code>char[4]</code> || "ROOT" || designating the ROOT directory
|-
| colspan="3" | entries, fill in later
|-
| <code>uint32</code> || Count || Number of file entries in the WAD file.
|-
| <code>uint32</code> || Offset? || The location where the entries block starts (always with 0D, 01, ROOT)
|-
| <code>uint32</code> || Offset? || The offset to the end of the entries block
|-
| ? || XCELZLIB || every wad ends with this. [[Wikipedia:zlib|zlib]]?
|}


=== WWAD ===
=== WWAD ===
This section is for the WWAD-headered Wad files used in ''LEGO Rock Raiders''. This format is also known to have been used in ''Gubble Buggy Racers'', a racing game originally intended to be based on ''[[Wikipedia:Wallace & Gromit|Wallace & Gromit]]'' before being reskinned for the ''[[Wikipedia:Gubble|Gubble]]'' franchise.
The WWAD format was first used in ''[[LEGO Rock Raiders (video game)|LEGO Rock Raiders]]'' in 1999. It is the most well-understood format, and multiple editing tools have been developed for it. The only other game currently known to use it is ''Gubble Buggy Racers'', a racing game originally intended to be based on ''[[Wikipedia:Wallace & Gromit|Wallace & Gromit]]'' before being reskinned for the ''[[Wikipedia:Gubble|Gubble]]'' franchise.


{| class="wikitable"
{| class="wikitable"
Line 50: Line 43:
! Type !! Value !! Description
! Type !! Value !! Description
|-
|-
| <code>char[4]</code> || "WWAD" || [[Wikipedia:ASCII|ASCII]] file signature. Always <code>57 57 41 44</code> (WWAD).
| <code>char[4]</code> || "WWAD" || [[Wikipedia:ASCII|ASCII]] file signature (or "[[Wikipedia:File magic number|magic number]]"). Always {{nowrap|<code>57 57 41 44</code>}} (WWAD).
|-
|-
| <code>uint32</code> || Count || Number of file entries in the WAD file. Example: <code>D6 00 00 00</code> for a WAD containing 214 files.
| <code>uint32</code> || Count || Number of file entries in the WAD file.
|-
Example: <code>D6 00 00 00</code> for a WAD containing 214 files (LegoRR1), <code>FF 15 00 00</code> for one containing {{formatnum:5631}} (hex: 15FF) files (LegoRR0).
| <code>cstring[]</code> || Names || Relative file paths and names within the WAD file ("Relative directories" or "Reldirs"). Each path is followed by a null character before the next entry.<br>Example: <code>Languages\ObjectiveText.txt</code>
|-
|-
| <code>cstring[]</code> || BuildNames || Original file paths used when building the WAD file for each file listed in Names, following the same order ("Absolute directories" or "Absdirs"). Each path is followed by a null character before the next entry.<br>Example: <code>\\ROBW\C\Dev\SourceSafe\Lego\Languages\0009-English\Data\Languages\ObjectiveText.txt</code>
| ''<code>cstring[]</code>'' || Names || Relative file paths and names within the WAD file ("Relative directories" or "Reldirs"). Each path is followed by a null character (<code>00</code>) before the next entry.
Example: <code>Languages\ObjectiveText.txt</code>
|-
|-
| <code>Entry[]</code> || Entries || Storage metadata for each file listed in Names, following the same order. Each entry is 16 bytes and lists a file's storage format, file size, and location in the WAD. See the table below for more details.
| ''<code>cstring[]</code>'' || BuildNames || Original file paths used when building the WAD file for each file listed in Names, following the same order ("Absolute directories" or "Absdirs"). Each path is followed by a null character before the next entry.
Example: <code>\\ROBW\C\Dev\SourceSafe\Lego\Languages\0009-English\Data\Languages\ObjectiveText.txt</code>
|-
|-
| || Data || File data
| ''Entry[]'' || Entries || Storage metadata for each file listed in Names, following the same order. Each entry is 16 bytes and lists a file's storage format, file size, and location in the WAD. See the table below for more details.
|}
|}


==== Entry structure ====
{| class="wikitable"
{| class="wikitable"
|+ Entry structure
|+ Entry structure
Line 68: Line 63:
! Type !! Value !! Description
! Type !! Value !! Description
|-
|-
| <code>uint32</code> || Flags || Flag determining the file's storage format. This entry is thought to be read as a single byte, though its entry still takes up 4 bytes of space. The flag has two known options: <code>01</code> for Store (uncompressed), <code>02</code> for Rob Northern compression (RNC). The game engine does not check ''for'' the Store flag, rather it checks ''against'' the RNC flag.<ref name="Format WAD"/>
| <code>uint32</code> || Flags || Flag determining the file's storage format. This entry is thought to be read as a single byte, though its entry still takes up 4 bytes of space. The flag has two known options: <code>01</code> for Store (uncompressed), <code>02</code> for Rob Northern compression (RNC). The game engine does not check ''for'' the Store flag, rather it checks ''against'' the RNC flag.<ref name="Analysis Format WAD"/>
By default, no versions of ''LEGO Rock Raiders'' or ''Gubble Buggy Racer'' are known to use RNC; it is, however, used in ''Conquest Earth''. For more information on RNC, see [https://segaretro.org/Rob_Northen_compression Sega Retro] and [https://moddingwiki.shikadi.net/wiki/Rob_Northern_Compression ModdingWiki].
By default, no versions of ''LEGO Rock Raiders'' or ''Gubble Buggy Racer'' are known to use RNC; it is, however, used in ''Conquest Earth''. For more information on RNC, see [https://segaretro.org/Rob_Northen_compression Sega Retro] and [https://moddingwiki.shikadi.net/wiki/Rob_Northern_Compression ModdingWiki].
|-
|-
Line 79: Line 74:


=== WADH ===
=== WADH ===
This section is for the WAD files first used in ''Tonka Space Station''. This format seems to have remained mostly unchanged through ''My Personal Golf Trainer'' in 2010. It does not seem to support RNC? Most of this is guessing.
The WADH format was first used in ''Tonka Space Station''. It was last known to have been used in ''My Personal Golf Trainer'' in 2010. ''TBD''
 
Apparently this format changed at some point?<ref>[https://github.com/BuilderDemo7/WADExplorer/blob/master/README.md WADExplorer]</ref>
 
{| class="wikitable"
|+ File structure
|-
! Type !! Value !! Description
|-
| <code>char[4]</code> || "WADH" || [[Wikipedia:ASCII|ASCII]] file signature. Always <code>57 41 44 48</code> (WADH).
|-
| <code>uint32</code> || Offset || Absolute offset to the file data section of the WAD.
|-
| <code>uint32</code> || Count || Number of file ''and folder'' entries in the WAD file.
|-
| <code>uint32</code> || Offset || Either the length of the Names block or the offset of file data after it?
|-
| <code>Entry[]</code> || Entries || Storage metadata for each file and folder
|-
| <code>cstring[]</code> || Names || File and folder names for each Entry. No file path structure.
|-
| || Data || File data
|}
 
this next part is guessing and I forgot what I meant for a lot of this:
{| class="wikitable"
|+ Entry structure
|-
! Type !! Value !! Description
|-
|  || FF FF FF FF or ## 00 00 00 || seems to be what number file an entry is within a folder but for each new folder it starts at FF then jumps to 01?
|-
| <code>uint32</code> || Offset || Offset of file name within Names block
|-
| <code>uint32</code> || Offset || Offset of file data within Data block
|-
| <code>uint32</code> || Size || Size of the file's data in the WAD file.
|-
|  || 00 00 00 00 || ?
|-
|  || 00 00 00 00 or 01 00 00 00 || ?
|-
|  || FF FF FF FF || sometimes is replaced by a hex number. that's the worst part really all these entries are inconsistent in length.
|}
 
== Usage ==
[[LEGO Rock Raiders (video game)|''LEGO Rock Raiders'']] uses two WAD files by default. These files are located in the game's install directory along with its executable file. LegoRR0.wad stores the majority of the game's data, while LegoRR1.wad stores the [[Main Lego Config File]] and language-related files. Additional streamed files are also stored in the Data folder, while streamed FMV files are stored in a separate Data folder on the game's disc.
 
''LEGO Rock Raiders''  WAD file names are determined by the name of the game's executable file. When loading, ''LEGO Rock Raiders'' looks for WAD files sharing a name with the game's executable, following the format of <samp><exename>#.wad</samp>. As the game's executable is named <samp>LegoRR.exe</samp> by default, the game looks for WAD files named <samp>LegoRR#.wad</samp> (the same functionality is used with the <code>Lego* {}</code> and <code>LegoRR {}</code> sections in its configuration-format files).<ref name="RRU priority"/>
 
The game searches for up to ten WAD files while loading, LegoRR0.wad to LegoRR9.wad. The WAD files do not have to have sequential numbers. The contents of WAD files with higher numbers take precedence over those with lower numbers (so if a file with the same name and path is stored in LegoRR0 and LegoRR1, only the file in LegoRR1 will be loaded).


== References ==
== References ==
{{Reflist|refs=
{{Reflist|refs=
<ref name="Format WAD">{{cite web |last=Jordan |first=Robert |date=July 9, 2021 |url=https://github.com/trigger-segfault/legorockraiders-analysis/wiki/Format:-WAD-file |title=Format: WAD file |website=LEGO Rock Raiders Assembly Analysis wiki |via=[[Wikipedia:GitHub|GitHub]] |archive-url=https://web.archive.org/web/20241201075325/https://github.com/trigger-segfault/legorockraiders-analysis/wiki/Format:-WAD-file |archive-date= December 1, 2024 |url-status=live |access-date=January 22, 2025}}</ref>
<ref name="Analysis Format WAD">{{cite web |last=Jordan |first=Robert |date=July 9, 2021 |url=https://github.com/trigger-segfault/legorockraiders-analysis/wiki/Format:-WAD-file |title=Format: WAD file |website=LEGO Rock Raiders Assembly Analysis wiki |via=[[Wikipedia:GitHub|GitHub]] |archive-url=https://web.archive.org/web/20241201075325/https://github.com/trigger-segfault/legorockraiders-analysis/wiki/Format:-WAD-file |archive-date= December 1, 2024 |url-status=live |access-date=January 22, 2025}}</ref>


<ref name="RRU priority">{{cite web |last=Jordan |first=Robert |date=July 10, 2021 |url=https://rockraidersunited.com/topic/234-no-wads-or-10-wads/?do=findComment&comment=141160 |title=I can clarify a bit more on some of the loose ends like the CD priority, and expand on some information... |type=comment on forum topic "NO WADS! or 10 Wads" |website=[[Rock Raiders United]] |archive-url=https://web.archive.org/web/20240220101608/https://rockraidersunited.com/topic/234-no-wads-or-10-wads/page/3/#comment-141160 |archive-date=20 February 2024 |url-status=live |access-date=January 22, 2025}}</ref>
<ref name="RRU priority">{{cite web |last=Jordan |first=Robert |date=July 10, 2021 |url=https://rockraidersunited.com/topic/234-no-wads-or-10-wads/?do=findComment&comment=141160 |title=I can clarify a bit more on some of the loose ends like the CD priority, and expand on some information... |type=comment on forum topic "NO WADS! or 10 Wads" |website=[[Rock Raiders United]] |archive-url=https://web.archive.org/web/20240220101608/https://rockraidersunited.com/topic/234-no-wads-or-10-wads/page/3/#comment-141160 |archive-date=20 February 2024 |url-status=live |access-date=January 22, 2025}}</ref>

Latest revision as of 22:45, 14 May 2025

DDI Wad
Filename extensions
.wad, .pwp
Magic numberWADH, WWAD
Developed byData Design Interactive
Initial release1997
Type of formatArchive file
CompressionOptional; see § Rob Northern compression
Container forVideo game files

DDI Wad is an archive file format developed by Data Design Interactive for storing files in video games. DDI Wad files usually use the file extension .wad. The format was first used for the 1997 video game Conquest Earth and was used regularly until Data Design ceased regular game development after 2010.

The DDI Wad format is not known to be related to other .WAD formats, such as Doom WAD or Wii WAD files.

File format

Data Design Interactive used multiple versions of the WAD format between 1997 and 2010. At least three major revisions are known, plus two versions designed exclusively for PlayStation games.

Conquest Earth files

TBD

WWAD

The WWAD format was first used in LEGO Rock Raiders in 1999. It is the most well-understood format, and multiple editing tools have been developed for it. The only other game currently known to use it is Gubble Buggy Racers, a racing game originally intended to be based on Wallace & Gromit before being reskinned for the Gubble franchise.

File structure
Type Value Description
char[4] "WWAD" ASCII file signature (or "magic number"). Always 57 57 41 44 (WWAD).
uint32 Count Number of file entries in the WAD file.

Example: D6 00 00 00 for a WAD containing 214 files (LegoRR1), FF 15 00 00 for one containing 5,631 (hex: 15FF) files (LegoRR0).

cstring[] Names Relative file paths and names within the WAD file ("Relative directories" or "Reldirs"). Each path is followed by a null character (00) before the next entry.

Example: Languages\ObjectiveText.txt

cstring[] BuildNames Original file paths used when building the WAD file for each file listed in Names, following the same order ("Absolute directories" or "Absdirs"). Each path is followed by a null character before the next entry.

Example: \\ROBW\C\Dev\SourceSafe\Lego\Languages\0009-English\Data\Languages\ObjectiveText.txt

Entry[] Entries Storage metadata for each file listed in Names, following the same order. Each entry is 16 bytes and lists a file's storage format, file size, and location in the WAD. See the table below for more details.

Entry structure

Entry structure
Type Value Description
uint32 Flags Flag determining the file's storage format. This entry is thought to be read as a single byte, though its entry still takes up 4 bytes of space. The flag has two known options: 01 for Store (uncompressed), 02 for Rob Northern compression (RNC). The game engine does not check for the Store flag, rather it checks against the RNC flag.[1]

By default, no versions of LEGO Rock Raiders or Gubble Buggy Racer are known to use RNC; it is, however, used in Conquest Earth. For more information on RNC, see Sega Retro and ModdingWiki.

uint32 PackedSize Packed size of the file's data in the WAD file. If the file is flagged as uncompressed, this entry must be identical to UnpackedSize.
uint32 UnpackedSize Original unpacked size of the file's data.
uint32 Offset Absolute offset to the file's data in the WAD, counting the number of bytes from the start of the WAD to the start of the file's data.

WADH

The WADH format was first used in Tonka Space Station. It was last known to have been used in My Personal Golf Trainer in 2010. TBD

References

  1. Jordan, Robert (July 9, 2021). "Format: WAD file". LEGO Rock Raiders Assembly Analysis wiki. Archived from the original on December 1, 2024. Retrieved January 22, 2025 – via GitHub.
Cite error: <ref> tag with name "RRU priority" defined in <references> is not used in prior text.