<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wexosmk.xyz/index.php?action=history&amp;feed=atom&amp;title=BFRES_%28File_Format%29%2FWii_U</id>
	<title>BFRES (File Format)/Wii U - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wexosmk.xyz/index.php?action=history&amp;feed=atom&amp;title=BFRES_%28File_Format%29%2FWii_U"/>
	<link rel="alternate" type="text/html" href="https://wiki.wexosmk.xyz/index.php?title=BFRES_(File_Format)/Wii_U&amp;action=history"/>
	<updated>2026-05-06T14:38:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.wexosmk.xyz/index.php?title=BFRES_(File_Format)/Wii_U&amp;diff=99&amp;oldid=prev</id>
		<title>Wexos: Imported from avsys wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.wexosmk.xyz/index.php?title=BFRES_(File_Format)/Wii_U&amp;diff=99&amp;oldid=prev"/>
		<updated>2024-05-01T17:09:56Z</updated>

		<summary type="html">&lt;p&gt;Imported from avsys wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Under-construction}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;BFRES&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;inary ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;RES&amp;#039;&amp;#039;&amp;#039;ources) is a file format used on [[Wii U]]. It contains model data, texture data, animation data and shader data. All offsets are relative to themselves, and may be 0 if it links to nothing (null).&lt;br /&gt;
&lt;br /&gt;
= File Format =&lt;br /&gt;
== Header ==&lt;br /&gt;
The file starts with the following header:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &amp;#039;&amp;#039;&amp;#039;File magic&amp;#039;&amp;#039;&amp;#039;. Always &amp;#039;&amp;#039;FRES&amp;#039;&amp;#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &amp;#039;&amp;#039;&amp;#039;[[#Version List|Version number]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt16 || {{BOM}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || UInt16 || &amp;#039;&amp;#039;&amp;#039;Size of this header&amp;#039;&amp;#039;&amp;#039;. This value is always 0x10, thus it doesn&amp;#039;t include the whole header.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Size of the whole file&amp;#039;&amp;#039;&amp;#039; in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || &amp;#039;&amp;#039;&amp;#039;File alignment&amp;#039;&amp;#039;&amp;#039;. GPU data needs to be aligned, and this value sets the alignment required by this file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Int32 || &amp;#039;&amp;#039;&amp;#039;File name offset&amp;#039;&amp;#039;&amp;#039;. Points to the name of this file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Size of the whole [[#String Table|string table]]&amp;#039;&amp;#039;&amp;#039; in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#String Table|String table]] offset&amp;#039;&amp;#039;&amp;#039;. Points to the first string of the string table.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FMDL|Model]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FTEX|Texture]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSKA|Skeleton animation]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSHU|Shader parameter animation]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSHU|Color animation]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSHU|Texture SRT animation]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FTXP|Texture pattern]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FVIS|Bone visibility animation]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FVIS|Material visibility animation]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSHA|Shape animation]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSCN|Scene animation]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#Embedded File|Embedded file]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x50 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FMDL|FMDL]]&amp;#039;&amp;#039;&amp;#039; models.&lt;br /&gt;
|-&lt;br /&gt;
| 0x52 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FTEX|FTEX]]&amp;#039;&amp;#039;&amp;#039; textures.&lt;br /&gt;
|-&lt;br /&gt;
| 0x54 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FSKA|FSKA]]&amp;#039;&amp;#039;&amp;#039; skeleton animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x56 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FSHU|FSHU]]&amp;#039;&amp;#039;&amp;#039; shader parameter animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x58 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FSHU|FSHU]]&amp;#039;&amp;#039;&amp;#039; color animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5A || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FSHU|FSHU]]&amp;#039;&amp;#039;&amp;#039; texture SRT animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5C || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FTXP|FTXP]]&amp;#039;&amp;#039;&amp;#039; texture pattern animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x5E || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FVIS|FVIS]]&amp;#039;&amp;#039;&amp;#039; bone visibility animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x60 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FVIS|FVIS]]&amp;#039;&amp;#039;&amp;#039; material visibility animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x62 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FSHA|FSHA]]&amp;#039;&amp;#039;&amp;#039; shape animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x64 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FSCN|FSCN]]&amp;#039;&amp;#039;&amp;#039; scene animations.&lt;br /&gt;
|-&lt;br /&gt;
| 0x66 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#Embedded File|embedded files]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x68 || UInt32 || &amp;#039;&amp;#039;&amp;#039;User pointer&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dictionary ===&lt;br /&gt;
A dictionary is a common structure used in many different structures. It is used for fast name look-up, in order to find a specific array item by its name. It starts with the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Total size of this structure&amp;#039;&amp;#039;&amp;#039; in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Int32 || &amp;#039;&amp;#039;&amp;#039;Number of nodes&amp;#039;&amp;#039;&amp;#039; following this structure (excluding root node).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A root node follow, and then comes the specified amount of nodes. Each node has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Search value&amp;#039;&amp;#039;&amp;#039;. Specifies the first difference between two strings.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Left index&amp;#039;&amp;#039;&amp;#039;. Specifies the left node.&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Right index&amp;#039;&amp;#039;&amp;#039;. Specifies the right node.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Int32 || &amp;#039;&amp;#039;&amp;#039;Name offset&amp;#039;&amp;#039;&amp;#039;. Points to the key used to perform fast look-up.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Int32 || &amp;#039;&amp;#039;&amp;#039;Data offset&amp;#039;&amp;#039;&amp;#039;. Points to the underlying data this node represents. What data this is depends on where it&amp;#039;s used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== User Data ===&lt;br /&gt;
User data is data stored in the game which can be accessed by the game to do anything. It can be retrieved by a game at runtime for any purpose. It has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Int32 || &amp;#039;&amp;#039;&amp;#039;Name offset&amp;#039;&amp;#039;&amp;#039;. Points to the key of this user data.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt16 || &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; = number of elements stored in the array.&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Byte || &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039; of the elements.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Int32 || The data consists of 4-bytes integers.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Float || The data consists of 4-bytes floating point numbers.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || String || The data consists of strings using the ASCII character set.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || String || The data consists of strings using the UCS-2 character set (like UTF-16, fixed 2 bytes per character).&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Byte || The data consists of bytes.&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Byte || Padding.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; Numbers&lt;br /&gt;
Numerical user data follows directly after this header as an array of &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; elements.&lt;br /&gt;
&lt;br /&gt;
; Strings&lt;br /&gt;
Textual data is stored as an array of offsets which point to strings following directly afterwards - they are &amp;#039;&amp;#039;not&amp;#039;&amp;#039; located in the file-wide string table. The strings are encoded in UTF-8 with the character set given above, and 0-terminated (there is no 4-byte length prefix as with strings stored in the string table). New lines should be represented with CRLF characters.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Int32[&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;] || &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; offsets to the strings. The strings are null-terminated and come directly after this array. They are not stored in the [[BFRES#String Table|string table]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Animation Curve ===&lt;br /&gt;
The animation curve stores the values of an animation. It is a common structure used in all sub files. Each curve has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Flags&amp;#039;&amp;#039;&amp;#039;. &amp;#039;&amp;#039;&amp;#039;xxxxxxxx xAAABBCC&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;AAA&amp;#039;&amp;#039;&amp;#039; determines what kind of curve data is stored, resulting in a different number of elements stored per key. They are used to set the key values and control the interpolation from one key to the next.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Description !! Elements per Key&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Cubic Single || 4 (hermite interpolation)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Linear Single || 2 (linear interpolation)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Baked Single || 1 (no interpolation)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Step Integer || 1 (no interpolation)&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Baked Integer || 1 (no interpolation)&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Step Boolean || 1 (no interpolation)&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Baked Boolean || 1 (no interpolation)&lt;br /&gt;
|}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BB&amp;#039;&amp;#039;&amp;#039; determines the data type of key frames.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Size !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 4 || Single&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 2 || Int16&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 1 || SByte&lt;br /&gt;
|}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CC&amp;#039;&amp;#039;&amp;#039; determines the data type of the frame values.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Size !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 4 || Single&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 2 || 16-bit fixed point value (1 bit sign, 10 bits integral and 5 bits fractional).&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 1 || Byte&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of key frames&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Target offset&amp;#039;&amp;#039;&amp;#039;, an offset in bytes into the corresponding owning structure to animate the field at that relative address.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Single || &amp;#039;&amp;#039;&amp;#039;Start key frame&amp;#039;&amp;#039;&amp;#039;, the first frame at which a key is placed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Single || &amp;#039;&amp;#039;&amp;#039;End key frame&amp;#039;&amp;#039;&amp;#039;, the last frame at which a key is placed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 / Single || &amp;#039;&amp;#039;&amp;#039;Data scale&amp;#039;&amp;#039;&amp;#039;, multitplier to the raw frame values to get the final result. Together with &amp;#039;&amp;#039;Data offset&amp;#039;&amp;#039;, it is chosen carefully to consider an optimal granularity between the stored values.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Single || &amp;#039;&amp;#039;&amp;#039;Data offset&amp;#039;&amp;#039;&amp;#039;, added to the raw values (after multiplying them with &amp;#039;&amp;#039;Data scale&amp;#039;&amp;#039;) to get the final frame value.&lt;br /&gt;
|- bgcolor=&amp;quot;#AAFFAA&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;If [[#Header|version]] &amp;amp;ge; 3.4.0.0&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#DDFFDD&amp;quot;&lt;br /&gt;
| 0x18 || Single || &amp;#039;&amp;#039;&amp;#039;Data delta&amp;#039;&amp;#039;&amp;#039;, stores the difference between the first and last key frame value.&lt;br /&gt;
|- bgcolor=&amp;quot;#DDFFDD&amp;quot;&lt;br /&gt;
| 0x1C || Int32 || &amp;#039;&amp;#039;&amp;#039;Key frame array&amp;#039;&amp;#039;&amp;#039; offset.&lt;br /&gt;
|- bgcolor=&amp;quot;#DDFFDD&amp;quot;&lt;br /&gt;
| 0x20 || Int32 || &amp;#039;&amp;#039;&amp;#039;Frame value array&amp;#039;&amp;#039;&amp;#039; offset.&lt;br /&gt;
|- bgcolor=&amp;quot;#FFAAAA&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Else&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDDDD&amp;quot;&lt;br /&gt;
| 0x18 || Int32 || &amp;#039;&amp;#039;&amp;#039;Key frame array&amp;#039;&amp;#039;&amp;#039; offset.&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDDDD&amp;quot;&lt;br /&gt;
| 0x1C || Int32 || &amp;#039;&amp;#039;&amp;#039;Frame value array&amp;#039;&amp;#039;&amp;#039; offset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== String Table ===&lt;br /&gt;
The string table stores all strings used in many different sections. It consists of null-terminated strings. All offsets points directly to the string. Before each string there is a UInt32 which stores the length of the string (excluding the null byte). The string length field is aligned by 4.&lt;br /&gt;
&lt;br /&gt;
== FMDL ==&lt;br /&gt;
The &amp;#039;&amp;#039;FMDL&amp;#039;&amp;#039; section (ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039;o&amp;#039;&amp;#039;&amp;#039;D&amp;#039;&amp;#039;&amp;#039;e&amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;) stores model data. It contains the vertex data, skeleton data, materials and shape data, split into 4 different sections. Each model has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &amp;#039;&amp;#039;&amp;#039;Section magic&amp;#039;&amp;#039;&amp;#039;. Always &amp;#039;&amp;#039;FMDL&amp;#039;&amp;#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Int32 || &amp;#039;&amp;#039;&amp;#039;Name offset&amp;#039;&amp;#039;&amp;#039;. Points to the name of this model.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Int32 || &amp;#039;&amp;#039;&amp;#039;Original path offset&amp;#039;&amp;#039;&amp;#039;. Points to the full path of the original file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSKL|FSKL]] skeleton offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FVTX|FVTX]] vertex array offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSHP|FSHP]] shape [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FMAT|FMAT]] material [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#User Data|User data]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FVTX|FVTX]] vertices&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FSHP|FSHP]] shapes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#FMAT|FMAT]] materials&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#User Data|user datas]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Number of processed vertices&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || UInt32 || &amp;#039;&amp;#039;&amp;#039;User pointer&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FSKL ===&lt;br /&gt;
&lt;br /&gt;
=== FVTX ===&lt;br /&gt;
&lt;br /&gt;
=== FSHP ===&lt;br /&gt;
&lt;br /&gt;
=== FMAT ===&lt;br /&gt;
&lt;br /&gt;
== FTEX ==&lt;br /&gt;
The &amp;#039;&amp;#039;FTEX&amp;#039;&amp;#039; section (ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;TEX&amp;#039;&amp;#039;&amp;#039;ture) stores textures data. Each texture has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &amp;#039;&amp;#039;&amp;#039;Section magic&amp;#039;&amp;#039;&amp;#039;. Always &amp;#039;&amp;#039;FTEX&amp;#039;&amp;#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Surface dimension&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 1D texture&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 2D texture&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 3D texture&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Cube texture&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || 1D array texture&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || 2D array texture&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || 2D MSAA texture&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || 2D MSAA array texture&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Width of image&amp;#039;&amp;#039;&amp;#039; in pixels.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Height of image&amp;#039;&amp;#039;&amp;#039; in pixels.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Depth of image&amp;#039;&amp;#039;&amp;#039; in pixels.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Total number of images&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Image format&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Anti aliasing mode&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || 1X anti aliasing&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 2X anti aliasing&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || 4X anti aliasing&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || 8X anti aliasing&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Surface usage&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Texture&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Color buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Depth buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Scan buffer&lt;br /&gt;
|-&lt;br /&gt;
| 0x80000000 || FTX&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Size of the main level image&amp;#039;&amp;#039;&amp;#039; in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Data pointer&amp;#039;&amp;#039;&amp;#039;, set at runtime.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Size of all mipmaps&amp;#039;&amp;#039;&amp;#039; in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Mipmap pointer&amp;#039;&amp;#039;&amp;#039;, set at runtime.&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Tile mode&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Default&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Linear Aligned&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Tiled 1D Thin 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Tiled 1D Thick&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Tiled 2D Thin 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || Tiled 2D Thin 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || Tiled 2D Thin 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || Tiled 2D Thick&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Tiled 2B Thin 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Tiled 2B Thin 2&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Tiled 2B Thin 4&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Tiled 2B Thick&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Tiled 3D Thin 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Tiled 3D Thick&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || Tiled 3B Thin 1&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || Tiled 3B Thick&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Linear Special&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Swizzle value&amp;#039;&amp;#039;&amp;#039;. A value between 0 and 7 which controlls how the image is swizzled.&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Texture alignment&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Pitch&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UInt32[13] || &amp;#039;&amp;#039;&amp;#039;Mipmap offsets&amp;#039;&amp;#039;&amp;#039;. Points to a maximum amount of 13 mipmaps, unused are set to 0. The first offset is relative to the main level image.&lt;br /&gt;
|-&lt;br /&gt;
| 0x78 || UInt32 || &amp;#039;&amp;#039;&amp;#039;First mipmap&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x7C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Total number of images&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || UInt32 || &amp;#039;&amp;#039;&amp;#039;First slice&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x84 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Number of slices&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x88 || Byte[4] || &amp;#039;&amp;#039;&amp;#039;Component selector&amp;#039;&amp;#039;&amp;#039;. Swizzles the different components, for red, green, blue and alpha respectively.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Red&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || Green&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || Blue&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || Alpha&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Zero&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || One&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0x8C || UInt32[5] || {{Unknown-left|&amp;#039;&amp;#039;&amp;#039;Texture registers&amp;#039;&amp;#039;&amp;#039;. Unknown use.}}&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Texture handle pointer&amp;#039;&amp;#039;&amp;#039;, set at runtime.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA4 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Array length&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xA8 || Int32 || &amp;#039;&amp;#039;&amp;#039;Name offset&amp;#039;&amp;#039;&amp;#039;. Points to the name of this texture.&lt;br /&gt;
|-&lt;br /&gt;
| 0xAC || Int32 || &amp;#039;&amp;#039;&amp;#039;Original path offset&amp;#039;&amp;#039;&amp;#039;. Points to the full path of the original file.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB0 || Int32 || &amp;#039;&amp;#039;&amp;#039;Data offset&amp;#039;&amp;#039;&amp;#039;. Points to the image data.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB4 || Int32 || &amp;#039;&amp;#039;&amp;#039;Mipmap data offset&amp;#039;&amp;#039;&amp;#039;. Points to the mipmap data.&lt;br /&gt;
|-&lt;br /&gt;
| 0xB8 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#User Data|User data]] [[#Dictionary|dictionary]] offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBC || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#User Data|user datas]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0xBE || UInt16 || &amp;#039;&amp;#039;&amp;#039;Padding&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FSKA ==&lt;br /&gt;
The &amp;#039;&amp;#039;FSKA&amp;#039;&amp;#039; section (ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;SK&amp;#039;&amp;#039;&amp;#039;eleton &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;nimation) stores skeleton animations. Each animation has the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Char[4] || &amp;#039;&amp;#039;&amp;#039;Section magic&amp;#039;&amp;#039;&amp;#039;. Always &amp;#039;&amp;#039;FSKA&amp;#039;&amp;#039; in ASCII.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Int32 || &amp;#039;&amp;#039;&amp;#039;Name offset&amp;#039;&amp;#039;&amp;#039;. Points to the name of this animation.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Int32 || &amp;#039;&amp;#039;&amp;#039;Original path offset&amp;#039;&amp;#039;&amp;#039;. Points to the full path of the original file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Flags&amp;#039;&amp;#039;&amp;#039;. Set of bits controlling how data is stored, packed as &amp;#039;&amp;#039;&amp;#039;xxxxxxxx xxxxxxxx xxxAxxBB xxxxxCxD&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039; controls the rotation mode. Quaternion = 0, Euler XYZ = 1.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BB&amp;#039;&amp;#039;&amp;#039; controls how to perform scaling:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || No scaling&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Standard scaling&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Maya scaling&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Softimage scaling&lt;br /&gt;
|}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; controls whether the animation is looping.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;D&amp;#039;&amp;#039;&amp;#039; determines whether curves are baked.&lt;br /&gt;
|- bgcolor=&amp;quot;#AAFFAA&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;If [[#Header|version]] &amp;amp;ge; 3.4.0.0&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#DDFFDD&amp;quot;&lt;br /&gt;
| 0x10 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Number of frames&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#DDFFDD&amp;quot;&lt;br /&gt;
| 0x14 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#Bone Animation|bone animations]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#DDFFDD&amp;quot;&lt;br /&gt;
| 0x16 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#User Data|user datas]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#DDFFDD&amp;quot;&lt;br /&gt;
| 0x18 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Number of [[#Animation Curve|curves]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#DDFFDD&amp;quot;&lt;br /&gt;
| 0x1C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Baked size&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#FFAAAA&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Else&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDDDD&amp;quot;&lt;br /&gt;
| 0x10 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of frames&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDDDD&amp;quot;&lt;br /&gt;
| 0x12 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#Bone Animation|bone animations]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDDDD&amp;quot;&lt;br /&gt;
| 0x14 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#User Data|user datas]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDDDD&amp;quot;&lt;br /&gt;
| 0x16 || UInt16 || &amp;#039;&amp;#039;&amp;#039;Number of [[#Animation Curve|curves]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDDDD&amp;quot;&lt;br /&gt;
| 0x18 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Baked size&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDDDD&amp;quot;&lt;br /&gt;
| 0x1C || UInt32 || &amp;#039;&amp;#039;&amp;#039;Unknown&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#Bone Animation|Bone animation]] array offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#FSKL|FSKL]] skeleton pointer&amp;#039;&amp;#039;&amp;#039;, set at runtime.&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || Int32 || &amp;#039;&amp;#039;&amp;#039;Bind index array offset&amp;#039;&amp;#039;&amp;#039;. Each element in this array is a UInt16.&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#User Data|User data]] [[#Dictionary|dictionary]]&amp;#039;&amp;#039;&amp;#039; offset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Bone Animation ===&lt;br /&gt;
Each bone animation structure stores animation for a specific bone. There are curves for each transformation type, which is linked by this structure. Each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Flags&amp;#039;&amp;#039;&amp;#039;. Sets of bits packed as &amp;#039;&amp;#039;&amp;#039;xxxxAAAA Axxxxxxx BBBBBBBB BBCCCxxx&amp;#039;&amp;#039;&amp;#039; determining if initial transformational values exist.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;AAAA A&amp;#039;&amp;#039;&amp;#039; are additional combinable flags which apparently describe how bones affect transformations.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Segment Scale Compensate&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Scale Uniform&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Scale Volume One&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Rotate Zero&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Translate Zero&lt;br /&gt;
|}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BBBBBBBB BB&amp;#039;&amp;#039;&amp;#039; are combinable flags apparently describing what kind of Curves are available.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Scale X&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Scale Y&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Scale Z&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Rotate X&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Rotate Y&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Rotate Z&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Translate X&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Translate Y&lt;br /&gt;
|-&lt;br /&gt;
| 256 || Translate Z&lt;br /&gt;
|}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CCC&amp;#039;&amp;#039;&amp;#039; are combinable flags determining if data is available in the Bone Animation Data to animate specific transformations:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Data Type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Scaling, a 3-component Single vector&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Rotate, a 4-component Single vector, storing an euler XYZ (last component unused) or quaternion rotation.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Translate, a 3-component Single vector&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || Int32 || &amp;#039;&amp;#039;&amp;#039;Bone name&amp;#039;&amp;#039;&amp;#039; offset of the bone to be transformed.&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || Byte || &amp;#039;&amp;#039;&amp;#039;Start rotation&amp;#039;&amp;#039;&amp;#039;, exact purpose unknown.&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || Byte || &amp;#039;&amp;#039;&amp;#039;Start translation&amp;#039;&amp;#039;&amp;#039;, exact purpose unknown.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || Byte || &amp;#039;&amp;#039;&amp;#039;Number of [[#Curve|curves]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || Byte || &amp;#039;&amp;#039;&amp;#039;Base [[#Bone Animation Data|bone animation data]] translate offset&amp;#039;&amp;#039;&amp;#039;, an offset into the base Bone Animation Data structure to retrieve the initial bone translation for resetting it.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || Byte || &amp;#039;&amp;#039;&amp;#039;Start [[#Animtion Curve|curve]] index&amp;#039;&amp;#039;&amp;#039;, relative to the whole FSKA subfile.&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Byte[3] || Padding.&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || Int32 || &amp;#039;&amp;#039;&amp;#039;[[#Animation Curve|Curve]] array offset&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || Int32 || &amp;#039;&amp;#039;&amp;#039;Base [[#Bone Animation Data|Bone Animation Data]] offset&amp;#039;&amp;#039;&amp;#039;, storing the initial state of the bone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Bone Animation Data ====&lt;br /&gt;
The Bone Animation header points to an array of float values, which have to be interpreted as 3- or 4-component vectors. Only the elements appearing in the &amp;#039;&amp;#039;Flags&amp;#039;&amp;#039; are stored, in the order as follows. The Curve target type is an offset into this structure to animate the corresponding field.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Size !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Single[3] || &amp;#039;&amp;#039;&amp;#039;Scaling&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Single[4] || &amp;#039;&amp;#039;&amp;#039;Rotation&amp;#039;&amp;#039;&amp;#039;, either euler XYZ or quaternion.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Single[3] || &amp;#039;&amp;#039;&amp;#039;Translation&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FSHU ==&lt;br /&gt;
The &amp;#039;&amp;#039;FSHU&amp;#039;&amp;#039; section (ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;SH&amp;#039;&amp;#039;&amp;#039;ader &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;ber animation) is used as three different types of animations which are treated the same way. It&amp;#039;s used as shader parameter animations, color animations and texture SRT animations. Each animation has the following structure:&lt;br /&gt;
&lt;br /&gt;
== FTXP ==&lt;br /&gt;
The &amp;#039;&amp;#039;FTXP&amp;#039;&amp;#039; section (ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;e&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;ture &amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;attern animation) stores texture pattern animations. Each animation has the following structure:&lt;br /&gt;
&lt;br /&gt;
== FVIS ==&lt;br /&gt;
The &amp;#039;&amp;#039;FVIS&amp;#039;&amp;#039; section (ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;VIS&amp;#039;&amp;#039;&amp;#039;ibility animation) is used as two different types of animations which are treated the same way. It&amp;#039;s used as both bone visibility animation and material visibility animation. Each animation has the following structure:&lt;br /&gt;
&lt;br /&gt;
== FSHA ==&lt;br /&gt;
The &amp;#039;&amp;#039;FSHA&amp;#039;&amp;#039; section (ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;SHA&amp;#039;&amp;#039;&amp;#039;pe animation) stores shape animations. Each animation has the following structure:&lt;br /&gt;
&lt;br /&gt;
== FSCN ==&lt;br /&gt;
The &amp;#039;&amp;#039;FSCN&amp;#039;&amp;#039; section (ca&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;e &amp;#039;&amp;#039;&amp;#039;SC&amp;#039;&amp;#039;&amp;#039;e&amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;e) stores scene animations. Each scene animation contains three different types of animations, camera, fog and light. Each animation has the following structure:&lt;br /&gt;
&lt;br /&gt;
== Embedded File ==&lt;br /&gt;
Embedded files are generic file data which is stored inside the BFRES file. It can contain any data, however, usually it is used to store a [[BFSHA]] shader file. Each entry has the following structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x00 || Int32 || &amp;#039;&amp;#039;&amp;#039;Offset to file data&amp;#039;&amp;#039;&amp;#039;. Points to the start of the generic file.&lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || UInt32 || &amp;#039;&amp;#039;&amp;#039;Length of the file&amp;#039;&amp;#039;&amp;#039; in bytes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Version List =&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Found in&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.0.3&lt;br /&gt;
|&lt;br /&gt;
* [[Captain Toad: Treasure Tracker]] (Nintendo Switch)&lt;br /&gt;
|-&lt;br /&gt;
| 2.2.0.6&lt;br /&gt;
|&lt;br /&gt;
* [[Captain Toad: Treasure Tracker]] (Nintendo Switch)&lt;br /&gt;
* [[Super Mario 3D World + Bowser&amp;#039;s Fury]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.0.0.1&lt;br /&gt;
|&lt;br /&gt;
* [[Mario &amp;amp; Sonic at the Sochi 2014 Olympic Winter Games]]&lt;br /&gt;
* [[Mario Kart 8]]&lt;br /&gt;
* [[New Super Mario Bros. U]]&lt;br /&gt;
* [[New Super Luigi U]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.2.0.1&lt;br /&gt;
|&lt;br /&gt;
* [[Mario &amp;amp; Sonic at the Sochi 2014 Olympic Winter Games]]&lt;br /&gt;
* [[Mario Kart 8]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.3.0.1&lt;br /&gt;
|&lt;br /&gt;
* [[Mario Kart 8]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.4.0.2&lt;br /&gt;
|&lt;br /&gt;
* [[Mario Kart 8]]&lt;br /&gt;
* [[Super Mario 3D World]]&lt;br /&gt;
* [[Tokyo Mirage Sessions ♯FE Encore]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.4.0.4&lt;br /&gt;
|&lt;br /&gt;
* [[Mario Kart 8]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.5.0.2&lt;br /&gt;
|&lt;br /&gt;
* [[Kirby and the Rainbow Curse]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.5.0.3&lt;br /&gt;
|&lt;br /&gt;
* [[Captain Toad: Treasure Tracker]] (Nintendo Switch)&lt;br /&gt;
* [[Mario Tennis: Ultra Smash]]&lt;br /&gt;
* [[Splatoon]]&lt;br /&gt;
* [[Super Mario Maker]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
The following tools can handle BFRES files:&lt;br /&gt;
* [[Wexos&amp;#039;s Toolbox]], by [[Wexos]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wii U File Formats]]&lt;/div&gt;</summary>
		<author><name>Wexos</name></author>
	</entry>
</feed>