In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Changes

Jump to navigation Jump to search
453 bytes added ,  21:07, 21 June 2015
Add info on file flags from Crediar's Cdecrypt source
Line 1: Line 1: −
The Filesystem Table, or FST, is a file present in Wii U disk images and downloaded content that describes the folders and files contained in the image or file.
+
The Filesystem Table, or FST, is a file present in Wii U disk images and downloaded content that describes the folders and files contained in the title.
    
It seems to be based on the Wii's FST format, but an extra header/cluster section was added.
 
It seems to be based on the Wii's FST format, but an extra header/cluster section was added.
Line 20: Line 20:  
! Field !! Size !! Offset !! Description
 
! Field !! Size !! Offset !! Description
 
|-
 
|-
|Magic || 4 || 0 || always "FST" and a null byte
+
|Magic || 4 || 0 || always 0x46535400 ("FST" and a null byte)
 
|-
 
|-
 
|Secondary header size || 4 || 4 || (not sure)
 
|Secondary header size || 4 || 4 || (not sure)
Line 45: Line 45:  
|Name Offset || 4 || 0 || Offset in bytes of the name of the file from the start of the nametable
 
|Name Offset || 4 || 0 || Offset in bytes of the name of the file from the start of the nametable
 
|-
 
|-
|Offset || 4 || 4 || Offset in sectors of the file in its storage cluster (multiply by 32 for byte offset)
+
|Offset || 4 || 4 || Offset of the file in its storage cluster: usually in sectors (multiply by 32 for byte offset); may be in bytes if the 0x4 bit in flags is set
 
|-
 
|-
 
|Size || 4 || 8 || Size of the file in bytes
 
|Size || 4 || 8 || Size of the file in bytes
 
|-
 
|-
| Storage cluster index || 4 || 12 || this field & 0xff is an index to the list of secondary headers
+
| Flags || 2 || 12 || 0x4: offset is in bytes, not sectors; 0x440: data contains SHA-1 hash
 +
|-
 +
| Storage cluster index || 2 || 14 || an index to the list of secondary headers. Additionally, for downloaded content, same as the content ID (an index into the title metadata's list of files.)
 
|}
 
|}
   −
If the top bits of the name offset is set (&0xff000000), then this entry is a directory
+
If the top bits of the name offset is set (&0xff000000), then this entry is a directory.
   −
In this case, the size corresponds to the number of entries this directory contains.
+
In this case, the size corresponds to the number of entries this directory contains, and the offset field corresponds to the parent directory's offset.
    
== Nametable ==
 
== Nametable ==
Line 61: Line 63:     
== External Links ==
 
== External Links ==
 +
 +
https://code.google.com/p/cdecrypt/source/browse/trunk/main.cpp - Crediar's CDecrypt tool that can parse FSTs from downloaded content
    
https://github.com/CarlKenner/dolphin/blob/WiiU/Source/Core/DiscIO/FileSystemWiiU.cpp - A fork of Dolphin by CarlKenner that can read WiiU disk images.
 
https://github.com/CarlKenner/dolphin/blob/WiiU/Source/Core/DiscIO/FileSystemWiiU.cpp - A fork of Dolphin by CarlKenner that can read WiiU disk images.
    
http://blog.delroth.net/2011/06/reading-wii-discs-with-python/ - some information on the Wii's FST format
 
http://blog.delroth.net/2011/06/reading-wii-discs-with-python/ - some information on the Wii's FST format
28

edits

Navigation menu