<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mii.j0.lol/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jo</id>
	<title>Mii Technical Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mii.j0.lol/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jo"/>
	<link rel="alternate" type="text/html" href="https://mii.j0.lol/wiki/Special:Contributions/Jo"/>
	<updated>2026-05-06T08:25:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=524</id>
		<title>Facial expressions</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=524"/>
		<updated>2025-09-24T22:33:19Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Expressions are modifications to the face.&lt;br /&gt;
&lt;br /&gt;
== In FFL ==&lt;br /&gt;
There are 19 expressions in [[FFL]].&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bro Mii (Normal expression).png|The normal expression. Nothing is modified.&lt;br /&gt;
File:Bro Mii (Smile expression).png|The smile expression. The eyes are modified.&lt;br /&gt;
File:Bro Mii (Wink, Right eye, Mouth open expression).png|The Wink (Right eye, Mouth open) expression&lt;br /&gt;
File:Bro Mii (Surprise).png|The surprise expression. The eyes are modified and transformed.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In AFL ==&lt;br /&gt;
[[AFL]] adds a lot of expressions, and adds a lot of textures to support these new expressions.&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bro (Love, mouth open expression).png|Love, mouth open expression.&lt;br /&gt;
File:Bro (Big Smile).png|Big smile expression.&lt;br /&gt;
File:Bro (Cat expression).png|Cat expression.&lt;br /&gt;
File:Bro (Blank expression).png|Blank expression.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* FFLExpression.h&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{Render-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=523</id>
		<title>Facial expressions</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=523"/>
		<updated>2025-09-24T22:26:03Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Expressions are modifications to the face.&lt;br /&gt;
&lt;br /&gt;
== In FFL ==&lt;br /&gt;
There are 19 expressions in [[FFL]].&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bro Mii (Normal expression).png|The normal expression. Nothing is modified.&lt;br /&gt;
File:Bro Mii (Smile expression).png|The smile expression. The eyes are modified.&lt;br /&gt;
File:Bro Mii (Wink, Right eye, Mouth open expression).png|The Wink (Right eye, Mouth open) expression&lt;br /&gt;
File:Bro Mii (Surprise).png|The surprise expression. The eyes are modified and transformed.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In AFL ==&lt;br /&gt;
[[AFL]] adds a lot of expressions, and adds a lot of textures to support these new expressions.&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bro (Love, mouth open expression).png|Love, mouth open expression.&lt;br /&gt;
File:Bro (Big Smile).png|Big smile expression.&lt;br /&gt;
File:Bro (Cat expression).png|Cat expression.&lt;br /&gt;
File:Bro (Blank expression).png|Blank expression.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{Render-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=522</id>
		<title>Facial expressions</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=522"/>
		<updated>2025-09-24T22:24:33Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Expressions are modifications to the face.&lt;br /&gt;
&lt;br /&gt;
== In FFL ==&lt;br /&gt;
There are 19 expressions in [[FFL]].&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bro Mii (Normal expression).png|The normal expression. Nothing is modified.&lt;br /&gt;
File:Bro Mii (Smile expression).png|The smile expression. The eyes are modified.&lt;br /&gt;
File:Bro Mii (Wink, Right eye, Mouth open expression).png|The Wink (Right eye, Mouth open) expression&lt;br /&gt;
File:Bro Mii (Surprise).png|The surprise expression. The eyes are modified and transformed.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In AFL ==&lt;br /&gt;
[[AFL]] adds a lot of expressions, and adds a lot of textures to support these new expressions.&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bro (Love, mouth open expression).png|Love, mouth open expression&lt;br /&gt;
File:Bro (Big Smile).png|Big smile expression&lt;br /&gt;
File:Bro (Cat expression).png|Cat expression&lt;br /&gt;
File:Bro (Blank expression).png|Blank expression&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{Render-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_(Blank_expression).png&amp;diff=521</id>
		<title>File:Bro (Blank expression).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_(Blank_expression).png&amp;diff=521"/>
		<updated>2025-09-24T22:23:27Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro (Blank expression)&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_(Cat_expression).png&amp;diff=520</id>
		<title>File:Bro (Cat expression).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_(Cat_expression).png&amp;diff=520"/>
		<updated>2025-09-24T22:23:14Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro (Cat expression)&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_(Big_Smile).png&amp;diff=519</id>
		<title>File:Bro (Big Smile).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_(Big_Smile).png&amp;diff=519"/>
		<updated>2025-09-24T22:22:49Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro (Big Smile expression)&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_(Big_Smile).png&amp;diff=518</id>
		<title>File:Bro (Big Smile).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_(Big_Smile).png&amp;diff=518"/>
		<updated>2025-09-24T22:22:29Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro (Big Smile)&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_(Love,_mouth_open_expression).png&amp;diff=517</id>
		<title>File:Bro (Love, mouth open expression).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_(Love,_mouth_open_expression).png&amp;diff=517"/>
		<updated>2025-09-24T22:22:10Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro (Love, mouth open expression)&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=516</id>
		<title>Facial expressions</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=516"/>
		<updated>2025-09-24T22:17:19Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Expressions are modifications to the face.&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bro Mii (Normal expression).png|The normal expression. Nothing is modified.&lt;br /&gt;
File:Bro Mii (Smile expression).png|The smile expression. The eyes are modified.&lt;br /&gt;
File:Bro Mii (Wink, Right eye, Mouth open expression).png|The Wink (Right eye, Mouth open) expression&lt;br /&gt;
File:Bro Mii (Surprise).png|The surprise expression. The eyes are modified and transformed.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
# FFLExpression.h&lt;br /&gt;
{{Render-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=515</id>
		<title>Facial expressions</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Facial_expressions&amp;diff=515"/>
		<updated>2025-09-24T22:16:40Z</updated>

		<summary type="html">&lt;p&gt;Jo: Created page with &amp;quot;Expressions are modifications to the face.&amp;lt;gallery&amp;gt; File:Bro Mii (Normal expression).png|The normal expression. Nothing is modified. File:Bro Mii (Smile expression).png|The smile expression. The eyes are modified. File:Bro Mii (Wink, Right eye, Mouth open expression).png|The Wink (Right eye, Mouth open) expression File:Bro Mii (Surprise).png|The surprise expression. The eyes are modified and transformed. &amp;lt;/gallery&amp;gt;{{Render-Navbox}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Expressions are modifications to the face.&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Bro Mii (Normal expression).png|The normal expression. Nothing is modified.&lt;br /&gt;
File:Bro Mii (Smile expression).png|The smile expression. The eyes are modified.&lt;br /&gt;
File:Bro Mii (Wink, Right eye, Mouth open expression).png|The Wink (Right eye, Mouth open) expression&lt;br /&gt;
File:Bro Mii (Surprise).png|The surprise expression. The eyes are modified and transformed.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;{{Render-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_Mii_(Surprise).png&amp;diff=514</id>
		<title>File:Bro Mii (Surprise).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_Mii_(Surprise).png&amp;diff=514"/>
		<updated>2025-09-24T22:14:57Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro Mii (Surprise) rendered in https://mii-unsecure.ariankordi.net/&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_Mii_(Wink,_Right_eye,_Mouth_open_expression).png&amp;diff=513</id>
		<title>File:Bro Mii (Wink, Right eye, Mouth open expression).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_Mii_(Wink,_Right_eye,_Mouth_open_expression).png&amp;diff=513"/>
		<updated>2025-09-24T22:13:45Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro Mii (Wink, Right eye, Mouth open expression) rendered in https://mii-unsecure.ariankordi.net/&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_Mii_(Smile_expression).png&amp;diff=512</id>
		<title>File:Bro Mii (Smile expression).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_Mii_(Smile_expression).png&amp;diff=512"/>
		<updated>2025-09-24T22:13:09Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro Mii (Normal expression) rendered in https://mii-unsecure.ariankordi.net/&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=File:Bro_Mii_(Normal_expression).png&amp;diff=511</id>
		<title>File:Bro Mii (Normal expression).png</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=File:Bro_Mii_(Normal_expression).png&amp;diff=511"/>
		<updated>2025-09-24T22:12:36Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bro Mii (Normal expression) rendered in https://mii-unsecure.ariankordi.net/&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Template:Render-Navbox&amp;diff=510</id>
		<title>Template:Render-Navbox</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Template:Render-Navbox&amp;diff=510"/>
		<updated>2025-09-24T22:02:29Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|bodyclass  = something&lt;br /&gt;
|name       = Render-Navbox&lt;br /&gt;
|title      = [[Mii Rendering]]&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
|group1 = [[Face]]&lt;br /&gt;
|list1 = {{Navbox|child&lt;br /&gt;
   |group1 = Models&lt;br /&gt;
   |list1 = &lt;br /&gt;
* [[Mask]]&lt;br /&gt;
* [[Faceline]]&lt;br /&gt;
* [[Glass]]&lt;br /&gt;
* [[Hair]]&lt;br /&gt;
* [[Beard (model)|Beard]]&lt;br /&gt;
* [[Cap]]&lt;br /&gt;
* [[Forehead]]&lt;br /&gt;
* [[Nose]]&lt;br /&gt;
* [[Noseline]]&lt;br /&gt;
   |group2 = Textures&lt;br /&gt;
   |list2 = &lt;br /&gt;
* [[Eye]]&lt;br /&gt;
* [[Eyebrow]]&lt;br /&gt;
* [[Mouth]]&lt;br /&gt;
* [[Mustache]]&lt;br /&gt;
* [[Mole]]&lt;br /&gt;
&lt;br /&gt;
* [[Wrinkle]]&lt;br /&gt;
* [[Makeup]]&lt;br /&gt;
* [[Beard (texture)|Beard]]&lt;br /&gt;
&lt;br /&gt;
|group3 = Impl&lt;br /&gt;
|list3 = &lt;br /&gt;
* [[Facial expressions|Expressions]]&lt;br /&gt;
* [[Headwear]]&lt;br /&gt;
* [[Mii Face Transformation|Transform]]&lt;br /&gt;
* [[Color Modulation]]&lt;br /&gt;
&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|group2 = [[Body]]&lt;br /&gt;
|list2 = &lt;br /&gt;
* [[Body Scaling|Scaling]]&lt;br /&gt;
&lt;br /&gt;
|group3 = [[Shaders]]&lt;br /&gt;
|list3 = &lt;br /&gt;
* [[Default Shader (FFL)| FFLDefaultShader]]&lt;br /&gt;
* [[Sample Shader (nn::mii)|nn::mii SampleShader]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Sample_Shader_(nn::mii)&amp;diff=509</id>
		<title>Sample Shader (nn::mii)</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Sample_Shader_(nn::mii)&amp;diff=509"/>
		<updated>2025-09-24T21:14:43Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mii render w switch shader (mii-unsecure).png|alt=A mii character with shading|thumb|400x400px|Mii render with Sample Shader]]&lt;br /&gt;
The [[nn::mii]] Sample Shader (&amp;lt;code&amp;gt;SampleShader.bnsh&amp;lt;/code&amp;gt;, colloquially &#039;&#039;Switch Shader&#039;&#039;) is a non-trivial shader.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Fresnel effect&lt;br /&gt;
{{Render-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Sample_Shader_(nn::mii)&amp;diff=508</id>
		<title>Sample Shader (nn::mii)</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Sample_Shader_(nn::mii)&amp;diff=508"/>
		<updated>2025-09-24T21:14:37Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mii render w switch shader (mii-unsecure).png|alt=A mii character with shading|thumb|400x400px|Mii render with Sample Shader]]&lt;br /&gt;
The [[nn::mii]] Sample Shader (&amp;lt;code&amp;gt;SampleShader.bnsh&amp;lt;/code&amp;gt;, colloquially &#039;&#039;Switch Shader&#039;&#039;) is a non-trivial shader.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
(probs wrong im riffing here&lt;br /&gt;
&lt;br /&gt;
* Fresnel effect&lt;br /&gt;
{{Render-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Glass&amp;diff=507</id>
		<title>Glass</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Glass&amp;diff=507"/>
		<updated>2025-09-24T20:58:35Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* In nn::mii */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mii glasses.png|thumb|The glasses of the face, highlighted in blue.]]&lt;br /&gt;
In [[Mii rendering]], the glasses are part of the [[face]].  The &#039;&#039;&#039;glass model&#039;&#039;&#039; is a quad model placed in front of the [[mask]], and a texture is projected onto it. The &#039;&#039;&#039;glass texture&#039;&#039;&#039; is made up of one lens, which is flipped in rendering for each side.&lt;br /&gt;
== Texture ==&lt;br /&gt;
The texture contains RG color channels and is [[Color Modulation|modulated]] with the [[Color Modulation#Luminance Alpha|&#039;&#039;Luminance Alpha&#039;&#039;]] strategy. In modulation, &#039;&#039;ColorR&#039;&#039; is determined by the &#039;&#039;glass_color&#039;&#039; field. In [[Cafe Face Library|FFL]], this is a [[Glass Color Tables|Glass Color]], and in [[nn::mii]], this is a [[Common Color Table|Common Color]].&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Gputrace glass nomodulation.png|Before modulation&lt;br /&gt;
File:Glasstex.png|After modulation.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== In nn::mii ===&lt;br /&gt;
nn::mii Glass textures have RG channels swapped in comparison to [[FFL]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:Glass texture FFL.jpg|Renderdoc inspecting [[Mii Maker (Wii U)]]&lt;br /&gt;
File:Glass texture NX.jpg|Renderdoc inspecting [[MiiEdit Applet|MiiEdit (Switch)]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
{{Render-Navbox}}&lt;br /&gt;
[[Category:Face part]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Glass&amp;diff=506</id>
		<title>Glass</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Glass&amp;diff=506"/>
		<updated>2025-09-24T20:57:41Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* In nn::mii */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mii glasses.png|thumb|The glasses of the face, highlighted in blue.]]&lt;br /&gt;
In [[Mii rendering]], the glasses are part of the [[face]].  The &#039;&#039;&#039;glass model&#039;&#039;&#039; is a quad model placed in front of the [[mask]], and a texture is projected onto it. The &#039;&#039;&#039;glass texture&#039;&#039;&#039; is made up of one lens, which is flipped in rendering for each side.&lt;br /&gt;
== Texture ==&lt;br /&gt;
The texture contains RG color channels and is [[Color Modulation|modulated]] with the [[Color Modulation#Luminance Alpha|&#039;&#039;Luminance Alpha&#039;&#039;]] strategy. In modulation, &#039;&#039;ColorR&#039;&#039; is determined by the &#039;&#039;glass_color&#039;&#039; field. In [[Cafe Face Library|FFL]], this is a [[Glass Color Tables|Glass Color]], and in [[nn::mii]], this is a [[Common Color Table|Common Color]].&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Gputrace glass nomodulation.png|Before modulation&lt;br /&gt;
File:Glasstex.png|After modulation.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== In nn::mii ===&lt;br /&gt;
nn::mii Glass textures have RG channels swapped in comparison to [[FFL]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:Glass texture FFL.jpg|Renderdoc inspecting Cemu&lt;br /&gt;
File:Glass texture NX.jpg|Renderdoc inspecting Ryujinx&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
{{Render-Navbox}}&lt;br /&gt;
[[Category:Face part]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Glass&amp;diff=505</id>
		<title>Glass</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Glass&amp;diff=505"/>
		<updated>2025-09-24T20:55:03Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mii glasses.png|thumb|The glasses of the face, highlighted in blue.]]&lt;br /&gt;
In [[Mii rendering]], the glasses are part of the [[face]].  The &#039;&#039;&#039;glass model&#039;&#039;&#039; is a quad model placed in front of the [[mask]], and a texture is projected onto it. The &#039;&#039;&#039;glass texture&#039;&#039;&#039; is made up of one lens, which is flipped in rendering for each side.&lt;br /&gt;
== Texture ==&lt;br /&gt;
The texture contains RG color channels and is [[Color Modulation|modulated]] with the [[Color Modulation#Luminance Alpha|&#039;&#039;Luminance Alpha&#039;&#039;]] strategy. In modulation, &#039;&#039;ColorR&#039;&#039; is determined by the &#039;&#039;glass_color&#039;&#039; field. In [[Cafe Face Library|FFL]], this is a [[Glass Color Tables|Glass Color]], and in [[nn::mii]], this is a [[Common Color Table|Common Color]].&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Gputrace glass nomodulation.png|Before modulation&lt;br /&gt;
File:Glasstex.png|After modulation.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== In nn::mii ===&lt;br /&gt;
nn::mii has RG channels swapped in comparison to [[FFL]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Glass texture FFL.jpg|Renderdoc inspecting Cemu&lt;br /&gt;
File:Glass texture NX.jpg|Renderdoc inspecting Ryujinx&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
{{Render-Navbox}}&lt;br /&gt;
[[Category:Face part]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=501</id>
		<title>FFLiResourceHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=501"/>
		<updated>2025-09-24T18:00:27Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* In Miitomo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FFLiResourceHeader is a [[Mii Resources|Mii resource struct]] that specifies both &#039;&#039;shape&#039;&#039; and &#039;&#039;texture&#039;&#039; data. It is used in both [[FFL]] on Wii U and [[AFL]] in Miitomo.&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
=== On Wii U ===&lt;br /&gt;
The location of these at MLC are at: &amp;lt;code&amp;gt;/sys/title/0005001b/10056000/content/&amp;lt;/code&amp;gt;. There are also &amp;quot;LG&amp;quot; variants of both, meant to be used for linear gamma. (Differences are unknown, shapes are all unchanged.)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hashes of data files&lt;br /&gt;
!File Name&lt;br /&gt;
!SHA256&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|FFLResMiddle.dat&lt;br /&gt;
|2a048021fb35b67481bdd92948827e0e130a5d7270689983896772a7255a0f14&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FFLResMiddleLG.dat&lt;br /&gt;
|b7d0e8c31b97be12c99a0b4b0158bfa32cf3fb0e236fab46c2497a22a62411fa&lt;br /&gt;
|Linear Gamma&lt;br /&gt;
|-&lt;br /&gt;
|FFLResHigh.dat&lt;br /&gt;
|75381dec8c73f6cad5e74ecd6c850f202223fd6fc57ddaa02475c7f62027e7ed&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FFLResHighLG.dat&lt;br /&gt;
|31dfc741eddd59c5e96f37df2c0e4784e6ace4a94539eb58641a6ae20bccaf73&lt;br /&gt;
|Linear Gamma&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== In games on the Wii U ====&lt;br /&gt;
The games &#039;&#039;Wii Party U&#039;&#039;, &#039;&#039;Wii Fit U&#039;&#039;, and &#039;&#039;Mario &amp;amp; Sonic at the Sochi 2014 Olympic Winter Games&#039;&#039; all have altered versions of the FFL resource file. In &#039;&#039;Wii Party U&#039;&#039;, some textures (noseline) have extra mipmaps, and some undefined &amp;quot;transform&amp;quot; data is altered in all game versions.&lt;br /&gt;
&lt;br /&gt;
=== In Miitomo ===&lt;br /&gt;
The AFL resource file comes in two versions, &#039;&#039;AFLResHigh.dat&#039;&#039; from the original release of the game and &#039;&#039;AFLResHigh_2_3.dat&#039;&#039; for Miitomo 2.3.0, which added Switch features and colors.&lt;br /&gt;
The only additions in AFLResHigh_2_3.dat are extra glass types from the Switch, but both include more eye, eyebrow, and mouth types for the various expressions in the game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hashes of data files&lt;br /&gt;
!File Name&lt;br /&gt;
!SHA256&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|AFLResHigh.dat&lt;br /&gt;
|todo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AFLResHigh_2_3.dat&lt;br /&gt;
|4a4be71d75162c20b48720ef89cd3d4e6cd4e8e21bcbc2aed63ee08d96de7722&lt;br /&gt;
|Extra [[glass]] types from [[Switch]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Header format ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ResourcePartsInfo {&lt;br /&gt;
    u32 dataPos;&lt;br /&gt;
    u32 dataSize;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel;&lt;br /&gt;
    u8 windowBits;&lt;br /&gt;
    u8 memoryLevel;&lt;br /&gt;
    u8 strategy;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceShapeHeader {&lt;br /&gt;
    u32 maxSize[12];&lt;br /&gt;
    ResourcePartsInfo beard[4];&lt;br /&gt;
    ResourcePartsInfo hatNormal[132];&lt;br /&gt;
    ResourcePartsInfo hatCap[132];&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo glass[1];&lt;br /&gt;
    ResourcePartsInfo mask[12];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
    ResourcePartsInfo nose[18];&lt;br /&gt;
    ResourcePartsInfo hairNormal[132];&lt;br /&gt;
    ResourcePartsInfo hairCap[132];&lt;br /&gt;
    ResourcePartsInfo foreheadNormal[132];&lt;br /&gt;
    ResourcePartsInfo foreheadCap[132];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader {&lt;br /&gt;
    u32 maxSize[11];&lt;br /&gt;
    ResourcePartsInfo beard[3];&lt;br /&gt;
    ResourcePartsInfo hat[132];&lt;br /&gt;
    ResourcePartsInfo eye[62];     // [80] in AFL&lt;br /&gt;
    ResourcePartsInfo eyebrow[24]; // [28] in AFL&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo faceMakeup[12];&lt;br /&gt;
    ResourcePartsInfo glass[9]; // [20] in AFL&lt;br /&gt;
    ResourcePartsInfo mole[2];&lt;br /&gt;
    ResourcePartsInfo mouth[37]; // [52] in AFL&lt;br /&gt;
    ResourcePartsInfo mustache[6];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceHeader { &lt;br /&gt;
    u32 signature; // &amp;quot;FFRA&amp;quot;&lt;br /&gt;
    u32 version;&lt;br /&gt;
    u32 uncompressedBufferSize;&lt;br /&gt;
    u32 expandedBufferSize;&lt;br /&gt;
    u32 expanded;&lt;br /&gt;
    ResourceTextureHeader textureHeader;&lt;br /&gt;
    ResourceShapeHeader shapeHeader;&lt;br /&gt;
    u32 unknown[12]; // Always 0x0?&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vertex data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Texture data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== In codebases ==&lt;br /&gt;
# [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h FFL Decomp]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Template:FL-Navbox&amp;diff=499</id>
		<title>Template:FL-Navbox</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Template:FL-Navbox&amp;diff=499"/>
		<updated>2025-09-24T17:56:53Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|bodyclass  = something&lt;br /&gt;
|name       = FL-Navbox&lt;br /&gt;
|title      = [[Face Libraries|Face Libraries]]&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
|group1 = Official&lt;br /&gt;
|list1 = &lt;br /&gt;
* [[Nitro Face Library|NFL]]&lt;br /&gt;
* [[Revolution Face Library|RFL]]&lt;br /&gt;
* [[Cafe Face Library|FFL]]&lt;br /&gt;
* [[Ctr Face Library|CFL]]&lt;br /&gt;
* [[Arch Face Library|AFL]]&lt;br /&gt;
* [[nn::mii]]&lt;br /&gt;
* [[un.mii]]&lt;br /&gt;
|group2 = &#039;&#039;Unofficial&#039;&#039;&lt;br /&gt;
|list2 = &lt;br /&gt;
* &#039;&#039;[[FFL (Decompilation)|FFL Decomp]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[FFL.js (Port)|FFL.js]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Vee (Unofficial)|Vee]]&#039;&#039;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=CFL&amp;diff=498</id>
		<title>CFL</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=CFL&amp;diff=498"/>
		<updated>2025-09-24T17:56:42Z</updated>

		<summary type="html">&lt;p&gt;Jo: Changed redirect target from Centrair Face Library to Ctr Face Library&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Ctr Face Library]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Centrair_Face_Library&amp;diff=497</id>
		<title>Centrair Face Library</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Centrair_Face_Library&amp;diff=497"/>
		<updated>2025-09-24T17:56:16Z</updated>

		<summary type="html">&lt;p&gt;Jo: Jo moved page Centrair Face Library to Ctr Face Library: Accuracy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Ctr Face Library]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Ctr_Face_Library&amp;diff=496</id>
		<title>Ctr Face Library</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Ctr_Face_Library&amp;diff=496"/>
		<updated>2025-09-24T17:56:16Z</updated>

		<summary type="html">&lt;p&gt;Jo: Jo moved page Centrair Face Library to Ctr Face Library: Accuracy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ctr Face Library, shortened to &#039;&#039;CFL&#039;&#039;, is the library used to render [[Mii|Mii characters]] on [[Nintendo 3DS]]. Mii characters created using this library are commonly referred to as &#039;Ver3&#039;.&lt;br /&gt;
&lt;br /&gt;
== Uses ==&lt;br /&gt;
* 3DS System and games&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* The codename for the [[Nintendo 3DS]] — Ctr — appears to be &#039;Centrair&#039;&amp;lt;ref&amp;gt;https://x.com/LuigiBlood/status/1717891546614251540&amp;lt;/ref&amp;gt;. It is possible that this codename is less publicised than Cafe due to trademark issues with [https://en.wikipedia.org/wiki/Chubu_Centrair_International_Airport Chubu Centrair International Airport].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{FL-Navbox}}&lt;br /&gt;
[[Category:Face libraries]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Ctr_Face_Library&amp;diff=495</id>
		<title>Ctr Face Library</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Ctr_Face_Library&amp;diff=495"/>
		<updated>2025-09-24T17:56:06Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ctr Face Library, shortened to &#039;&#039;CFL&#039;&#039;, is the library used to render [[Mii|Mii characters]] on [[Nintendo 3DS]]. Mii characters created using this library are commonly referred to as &#039;Ver3&#039;.&lt;br /&gt;
&lt;br /&gt;
== Uses ==&lt;br /&gt;
* 3DS System and games&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* The codename for the [[Nintendo 3DS]] — Ctr — appears to be &#039;Centrair&#039;&amp;lt;ref&amp;gt;https://x.com/LuigiBlood/status/1717891546614251540&amp;lt;/ref&amp;gt;. It is possible that this codename is less publicised than Cafe due to trademark issues with [https://en.wikipedia.org/wiki/Chubu_Centrair_International_Airport Chubu Centrair International Airport].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{FL-Navbox}}&lt;br /&gt;
[[Category:Face libraries]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=494</id>
		<title>Template:Resource-Navbox</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=494"/>
		<updated>2025-09-24T17:53:20Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|bodyclass  = something&lt;br /&gt;
|name       = Resource-Navbox&lt;br /&gt;
|title      = [[Mii Resources|Mii Resource Formats]]&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
&lt;br /&gt;
|group1 = [[Revolution Face Library|RFL]]&lt;br /&gt;
|list1 = &lt;br /&gt;
* [[RFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group2 = [[Nitro Face Library|NFL]]&lt;br /&gt;
|list2 = &lt;br /&gt;
* [[NFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group3 = [[Centrair Face Library|CFL]]&lt;br /&gt;
|list3 = &lt;br /&gt;
* [[CFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group4 = [[Cafe Face Library|FFL]]&lt;br /&gt;
|list4 = &lt;br /&gt;
* [[FFLiResourceHeader]]&lt;br /&gt;
&lt;br /&gt;
|group5 = [[nn::mii]]::detail&lt;br /&gt;
|list5 = &lt;br /&gt;
* [[nn::mii::detail::ResourceShapeHeader|ResourceShapeHeader]]&lt;br /&gt;
* [[nn::mii::detail::ResourceTextureHeader|ResourceTextureHeader]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=493</id>
		<title>FFLiResourceHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=493"/>
		<updated>2025-09-24T17:49:14Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FFLiResourceHeader is a [[Mii Resources|Mii resource struct]] that specifies both &#039;&#039;vertex&#039;&#039; and &#039;&#039;texture&#039;&#039; data. It is used in [[FFL]], [[CFL]], and [[AFL]].&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
=== On Wii U ===&lt;br /&gt;
The location of these at MLC are at: &amp;lt;code&amp;gt;/sys/title/0005001b/10056000/content/&amp;lt;/code&amp;gt;. There are also &amp;quot;LG&amp;quot; variants of both, meant to be used for linear gamma. (Differences are unknown, shapes are all unchanged.)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hashes of data files&lt;br /&gt;
!File Name&lt;br /&gt;
!SHA256&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|FFLResMiddle.dat&lt;br /&gt;
|2a048021fb35b67481bdd92948827e0e130a5d7270689983896772a7255a0f14&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FFLResMiddleLG.dat&lt;br /&gt;
|b7d0e8c31b97be12c99a0b4b0158bfa32cf3fb0e236fab46c2497a22a62411fa&lt;br /&gt;
|Linear Gamma&lt;br /&gt;
|-&lt;br /&gt;
|FFLResHigh.dat&lt;br /&gt;
|75381dec8c73f6cad5e74ecd6c850f202223fd6fc57ddaa02475c7f62027e7ed&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FFLResHighLG.dat&lt;br /&gt;
|31dfc741eddd59c5e96f37df2c0e4784e6ace4a94539eb58641a6ae20bccaf73&lt;br /&gt;
|Linear Gamma&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== In games on the Wii U ====&lt;br /&gt;
The games &#039;&#039;Wii Party U&#039;&#039;, &#039;&#039;Wii Fit U&#039;&#039;, and &#039;&#039;Mario &amp;amp; Sonic at the Sochi 2014 Olympic Winter Games&#039;&#039; all have altered versions of FFLiResourceHeader. In &#039;&#039;Wii Party U&#039;&#039;, some texture mipmaps are removed, and some undefined data is altered in all game versions.&lt;br /&gt;
&lt;br /&gt;
=== On 3DS ===&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
=== In Miitomo ===&lt;br /&gt;
AFL... come in two versions, 2whatever and 2whatever. some extra things are added. &amp;lt;&amp;lt;TODO&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Header format ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ResourcePartsInfo {&lt;br /&gt;
    u32 dataPos;&lt;br /&gt;
    u32 dataSize;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel;&lt;br /&gt;
    u8 windowBits;&lt;br /&gt;
    u8 memoryLevel;&lt;br /&gt;
    u8 strategy;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceShapeHeader {&lt;br /&gt;
    u32 maxSize[12];&lt;br /&gt;
    ResourcePartsInfo beard[4];&lt;br /&gt;
    ResourcePartsInfo hatNormal[132];&lt;br /&gt;
    ResourcePartsInfo hatCap[132];&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo glass[1];&lt;br /&gt;
    ResourcePartsInfo mask[12];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
    ResourcePartsInfo nose[18];&lt;br /&gt;
    ResourcePartsInfo hairNormal[132];&lt;br /&gt;
    ResourcePartsInfo hairCap[132];&lt;br /&gt;
    ResourcePartsInfo foreheadNormal[132];&lt;br /&gt;
    ResourcePartsInfo foreheadCap[132];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader {&lt;br /&gt;
    u32 maxSize[11];&lt;br /&gt;
    ResourcePartsInfo beard[3];&lt;br /&gt;
    ResourcePartsInfo hat[132];&lt;br /&gt;
    ResourcePartsInfo eye[62];     // [80] in AFL&lt;br /&gt;
    ResourcePartsInfo eyebrow[24]; // [28] in AFL&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo faceMakeup[12];&lt;br /&gt;
    ResourcePartsInfo glass[9]; // [20] in AFL&lt;br /&gt;
    ResourcePartsInfo mole[2];&lt;br /&gt;
    ResourcePartsInfo mouth[37]; // [52] in AFL&lt;br /&gt;
    ResourcePartsInfo mustache[6];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceHeader { &lt;br /&gt;
    u32 signature; // &amp;quot;FFRA&amp;quot;&lt;br /&gt;
    u32 version;&lt;br /&gt;
    u32 uncompressedBufferSize;&lt;br /&gt;
    u32 expandedBufferSize;&lt;br /&gt;
    u32 expanded;&lt;br /&gt;
    ResourceTextureHeader textureHeader;&lt;br /&gt;
    ResourceShapeHeader shapeHeader;&lt;br /&gt;
    u32 unknown[12]; // Always 0x0?&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vertex data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Texture data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== In codebases ==&lt;br /&gt;
# [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h FFL Decomp]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=AFL&amp;diff=492</id>
		<title>AFL</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=AFL&amp;diff=492"/>
		<updated>2025-09-24T17:42:20Z</updated>

		<summary type="html">&lt;p&gt;Jo: Redirected page to Arch Face Library&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Arch Face Library]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=CFL&amp;diff=491</id>
		<title>CFL</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=CFL&amp;diff=491"/>
		<updated>2025-09-24T17:42:08Z</updated>

		<summary type="html">&lt;p&gt;Jo: Redirected page to Centrair Face Library&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Centrair Face Library]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFL&amp;diff=490</id>
		<title>FFL</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFL&amp;diff=490"/>
		<updated>2025-09-24T17:41:47Z</updated>

		<summary type="html">&lt;p&gt;Jo: Redirected page to Cafe Face Library&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Cafe Face Library]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=489</id>
		<title>FFLiResourceHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=489"/>
		<updated>2025-09-24T17:41:22Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FFLiResourceHeader is a [[Mii Resources|Mii resource struct]] that specifies both &#039;&#039;vertex&#039;&#039; and &#039;&#039;texture&#039;&#039; data. It is used in [[FFL]], [[CFL]], and [[AFL]].&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
=== On Wii U ===&lt;br /&gt;
The location of these at MLC are at: &amp;lt;code&amp;gt;/sys/title/0005001b/10056000/content/&amp;lt;/code&amp;gt;. There are also &amp;quot;LG&amp;quot; variants of both, meant to be used for linear gamma. (Differences are unknown, shapes are all unchanged.)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hashes of data files&lt;br /&gt;
!File Name&lt;br /&gt;
!SHA256&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|FFLResMiddle.dat&lt;br /&gt;
|2a048021fb35b67481bdd92948827e0e130a5d7270689983896772a7255a0f14&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FFLResMiddleLG.dat&lt;br /&gt;
|b7d0e8c31b97be12c99a0b4b0158bfa32cf3fb0e236fab46c2497a22a62411fa&lt;br /&gt;
|Linear Gamma&lt;br /&gt;
|-&lt;br /&gt;
|FFLResHigh.dat&lt;br /&gt;
|75381dec8c73f6cad5e74ecd6c850f202223fd6fc57ddaa02475c7f62027e7ed&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FFLResHighLG.dat&lt;br /&gt;
|31dfc741eddd59c5e96f37df2c0e4784e6ace4a94539eb58641a6ae20bccaf73&lt;br /&gt;
|Linear Gamma&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== On 3DS ===&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
=== In Miitomo ===&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
== Header format ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ResourcePartsInfo {&lt;br /&gt;
    u32 dataPos;&lt;br /&gt;
    u32 dataSize;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel;&lt;br /&gt;
    u8 windowBits;&lt;br /&gt;
    u8 memoryLevel;&lt;br /&gt;
    u8 strategy;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceShapeHeader {&lt;br /&gt;
    u32 maxSize[12];&lt;br /&gt;
    ResourcePartsInfo beard[4];&lt;br /&gt;
    ResourcePartsInfo hatNormal[132];&lt;br /&gt;
    ResourcePartsInfo hatCap[132];&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo glass[1];&lt;br /&gt;
    ResourcePartsInfo mask[12];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
    ResourcePartsInfo nose[18];&lt;br /&gt;
    ResourcePartsInfo hairNormal[132];&lt;br /&gt;
    ResourcePartsInfo hairCap[132];&lt;br /&gt;
    ResourcePartsInfo foreheadNormal[132];&lt;br /&gt;
    ResourcePartsInfo foreheadCap[132];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader {&lt;br /&gt;
    u32 maxSize[11];&lt;br /&gt;
    ResourcePartsInfo beard[3];&lt;br /&gt;
    ResourcePartsInfo hat[132];&lt;br /&gt;
    ResourcePartsInfo eye[62];     // [80] in AFL&lt;br /&gt;
    ResourcePartsInfo eyebrow[24]; // [28] in AFL&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo faceMakeup[12];&lt;br /&gt;
    ResourcePartsInfo glass[9]; // [20] in AFL&lt;br /&gt;
    ResourcePartsInfo mole[2];&lt;br /&gt;
    ResourcePartsInfo mouth[37]; // [52] in AFL&lt;br /&gt;
    ResourcePartsInfo mustache[6];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceHeader { &lt;br /&gt;
    u32 signature; // &amp;quot;FFRA&amp;quot;&lt;br /&gt;
    u32 version;&lt;br /&gt;
    u32 uncompressedBufferSize;&lt;br /&gt;
    u32 expandedBufferSize;&lt;br /&gt;
    u32 expanded;&lt;br /&gt;
    ResourceTextureHeader textureHeader;&lt;br /&gt;
    ResourceShapeHeader shapeHeader;&lt;br /&gt;
    u32 unknown[12]; // Always 0x0?&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vertex data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Texture data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== In codebases ==&lt;br /&gt;
# [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h FFL Decomp]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=488</id>
		<title>FFLiResourceHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=488"/>
		<updated>2025-09-24T17:40:01Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;&amp;lt;TODO rename to struct, combine with AFL&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FFLiResourceHeader is a [[Mii Resources|Mii resource struct]] that specifies both &#039;&#039;vertex&#039;&#039; and &#039;&#039;texture&#039;&#039; data.&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
On the Wii U, the location of these at MLC are at: &amp;lt;code&amp;gt;/sys/title/0005001b/10056000/content/&amp;lt;/code&amp;gt;. There are also &amp;quot;LG&amp;quot; variants of both, meant to be used for linear gamma. (Differences are unknown, shapes are all unchanged.)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Hashes of data files&lt;br /&gt;
!File Name&lt;br /&gt;
!SHA256&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|FFLResMiddle.dat&lt;br /&gt;
|2a048021fb35b67481bdd92948827e0e130a5d7270689983896772a7255a0f14&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FFLResMiddleLG.dat&lt;br /&gt;
|b7d0e8c31b97be12c99a0b4b0158bfa32cf3fb0e236fab46c2497a22a62411fa&lt;br /&gt;
|Linear Gamma&lt;br /&gt;
|-&lt;br /&gt;
|FFLResHigh.dat&lt;br /&gt;
|75381dec8c73f6cad5e74ecd6c850f202223fd6fc57ddaa02475c7f62027e7ed&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FFLResHighLG.dat&lt;br /&gt;
|31dfc741eddd59c5e96f37df2c0e4784e6ace4a94539eb58641a6ae20bccaf73&lt;br /&gt;
|Linear Gamma&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Header format ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ResourcePartsInfo {&lt;br /&gt;
    u32 dataPos;&lt;br /&gt;
    u32 dataSize;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel;&lt;br /&gt;
    u8 windowBits;&lt;br /&gt;
    u8 memoryLevel;&lt;br /&gt;
    u8 strategy;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceShapeHeader {&lt;br /&gt;
    u32 maxSize[12];&lt;br /&gt;
    ResourcePartsInfo beard[4];&lt;br /&gt;
    ResourcePartsInfo hatNormal[132];&lt;br /&gt;
    ResourcePartsInfo hatCap[132];&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo glass[1];&lt;br /&gt;
    ResourcePartsInfo mask[12];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
    ResourcePartsInfo nose[18];&lt;br /&gt;
    ResourcePartsInfo hairNormal[132];&lt;br /&gt;
    ResourcePartsInfo hairCap[132];&lt;br /&gt;
    ResourcePartsInfo foreheadNormal[132];&lt;br /&gt;
    ResourcePartsInfo foreheadCap[132];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader {&lt;br /&gt;
    u32 maxSize[11];&lt;br /&gt;
    ResourcePartsInfo beard[3];&lt;br /&gt;
    ResourcePartsInfo hat[132];&lt;br /&gt;
    ResourcePartsInfo eye[62];     // [80] in AFL&lt;br /&gt;
    ResourcePartsInfo eyebrow[24]; // [28] in AFL&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo faceMakeup[12];&lt;br /&gt;
    ResourcePartsInfo glass[9]; // [20] in AFL&lt;br /&gt;
    ResourcePartsInfo mole[2];&lt;br /&gt;
    ResourcePartsInfo mouth[37]; // [52] in AFL&lt;br /&gt;
    ResourcePartsInfo mustache[6];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceHeader { &lt;br /&gt;
    u32 signature; // &amp;quot;FFRA&amp;quot;&lt;br /&gt;
    u32 version;&lt;br /&gt;
    u32 uncompressedBufferSize;&lt;br /&gt;
    u32 expandedBufferSize;&lt;br /&gt;
    u32 expanded;&lt;br /&gt;
    ResourceTextureHeader textureHeader;&lt;br /&gt;
    ResourceShapeHeader shapeHeader;&lt;br /&gt;
    u32 unknown[12]; // Always 0x0?&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vertex data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Texture data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== In codebases ==&lt;br /&gt;
# [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h FFL Decomp]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFLRes%EF%BC%8A.dat&amp;diff=487</id>
		<title>FFLRes＊.dat</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFLRes%EF%BC%8A.dat&amp;diff=487"/>
		<updated>2025-09-24T17:34:36Z</updated>

		<summary type="html">&lt;p&gt;Jo: Jo moved page FFLRes＊.dat to FFLiResourceHeader&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[FFLiResourceHeader]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=486</id>
		<title>FFLiResourceHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=486"/>
		<updated>2025-09-24T17:34:36Z</updated>

		<summary type="html">&lt;p&gt;Jo: Jo moved page FFLRes＊.dat to FFLiResourceHeader&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;&amp;lt;TODO rename to struct, combine with AFL&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;FFLResMiddle.dat&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FFLResHigh.dat&amp;lt;/code&amp;gt; are [[Mii Resources|Mii resource files]] that specify both &#039;&#039;vertex&#039;&#039; and &#039;&#039;texture&#039;&#039; data.&lt;br /&gt;
&lt;br /&gt;
On the Wii U, the location of these at MLC are at: &amp;lt;code&amp;gt;/sys/title/0005001b/10056000/content/FFLRes...&amp;lt;/code&amp;gt;. There are also &amp;quot;LG&amp;quot; variants of both, meant to be used for linear gamma. (Differences are unknown, shapes are all unchanged.)&lt;br /&gt;
&lt;br /&gt;
== Header format ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ResourcePartsInfo {&lt;br /&gt;
    u32 dataPos;&lt;br /&gt;
    u32 dataSize;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel;&lt;br /&gt;
    u8 windowBits;&lt;br /&gt;
    u8 memoryLevel;&lt;br /&gt;
    u8 strategy;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceShapeHeader {&lt;br /&gt;
    u32 maxSize[12];&lt;br /&gt;
    ResourcePartsInfo beard[4];&lt;br /&gt;
    ResourcePartsInfo hatNormal[132];&lt;br /&gt;
    ResourcePartsInfo hatCap[132];&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo glass[1];&lt;br /&gt;
    ResourcePartsInfo mask[12];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
    ResourcePartsInfo nose[18];&lt;br /&gt;
    ResourcePartsInfo hairNormal[132];&lt;br /&gt;
    ResourcePartsInfo hairCap[132];&lt;br /&gt;
    ResourcePartsInfo foreheadNormal[132];&lt;br /&gt;
    ResourcePartsInfo foreheadCap[132];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader {&lt;br /&gt;
    u32 maxSize[11];&lt;br /&gt;
    ResourcePartsInfo beard[3];&lt;br /&gt;
    ResourcePartsInfo hat[132];&lt;br /&gt;
    ResourcePartsInfo eye[62];     // [80] in AFL&lt;br /&gt;
    ResourcePartsInfo eyebrow[24]; // [28] in AFL&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo faceMakeup[12];&lt;br /&gt;
    ResourcePartsInfo glass[9]; // [20] in AFL&lt;br /&gt;
    ResourcePartsInfo mole[2];&lt;br /&gt;
    ResourcePartsInfo mouth[37]; // [52] in AFL&lt;br /&gt;
    ResourcePartsInfo mustache[6];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceHeader { &lt;br /&gt;
    u32 signature; // &amp;quot;FFRA&amp;quot;&lt;br /&gt;
    u32 version;&lt;br /&gt;
    u32 uncompressedBufferSize;&lt;br /&gt;
    u32 expandedBufferSize;&lt;br /&gt;
    u32 expanded;&lt;br /&gt;
    ResourceTextureHeader textureHeader;&lt;br /&gt;
    ResourceShapeHeader shapeHeader;&lt;br /&gt;
    u32 unknown[12]; // Always 0x0?&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vertex data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Texture data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== In codebases ==&lt;br /&gt;
# [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h FFL Decomp]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=481</id>
		<title>FFLiResourceHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=481"/>
		<updated>2025-09-24T14:49:26Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;&amp;lt;TODO rename to struct, combine with AFL&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;FFLResMiddle.dat&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FFLResHigh.dat&amp;lt;/code&amp;gt; are [[Mii Resources|Mii resource files]] that specify both &#039;&#039;vertex&#039;&#039; and &#039;&#039;texture&#039;&#039; data.&lt;br /&gt;
&lt;br /&gt;
On the Wii U, the location of these at MLC are at: &amp;lt;code&amp;gt;/sys/title/0005001b/10056000/content/FFLRes...&amp;lt;/code&amp;gt;. There are also &amp;quot;LG&amp;quot; variants of both, meant to be used for linear gamma. (Differences are unknown, shapes are all unchanged.)&lt;br /&gt;
&lt;br /&gt;
== Header format ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ResourcePartsInfo {&lt;br /&gt;
    u32 dataPos;&lt;br /&gt;
    u32 dataSize;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel;&lt;br /&gt;
    u8 windowBits;&lt;br /&gt;
    u8 memoryLevel;&lt;br /&gt;
    u8 strategy;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceShapeHeader {&lt;br /&gt;
    u32 maxSize[12];&lt;br /&gt;
    ResourcePartsInfo beard[4];&lt;br /&gt;
    ResourcePartsInfo hatNormal[132];&lt;br /&gt;
    ResourcePartsInfo hatCap[132];&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo glass[1];&lt;br /&gt;
    ResourcePartsInfo mask[12];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
    ResourcePartsInfo nose[18];&lt;br /&gt;
    ResourcePartsInfo hairNormal[132];&lt;br /&gt;
    ResourcePartsInfo hairCap[132];&lt;br /&gt;
    ResourcePartsInfo foreheadNormal[132];&lt;br /&gt;
    ResourcePartsInfo foreheadCap[132];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader {&lt;br /&gt;
    u32 maxSize[11];&lt;br /&gt;
    ResourcePartsInfo beard[3];&lt;br /&gt;
    ResourcePartsInfo hat[132];&lt;br /&gt;
    ResourcePartsInfo eye[62];     // [80] in AFL&lt;br /&gt;
    ResourcePartsInfo eyebrow[24]; // [28] in AFL&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo faceMakeup[12];&lt;br /&gt;
    ResourcePartsInfo glass[9]; // [20] in AFL&lt;br /&gt;
    ResourcePartsInfo mole[2];&lt;br /&gt;
    ResourcePartsInfo mouth[37]; // [52] in AFL&lt;br /&gt;
    ResourcePartsInfo mustache[6];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceHeader { &lt;br /&gt;
    u32 signature; // &amp;quot;FFRA&amp;quot;&lt;br /&gt;
    u32 version;&lt;br /&gt;
    u32 uncompressedBufferSize;&lt;br /&gt;
    u32 expandedBufferSize;&lt;br /&gt;
    u32 expanded;&lt;br /&gt;
    ResourceTextureHeader textureHeader;&lt;br /&gt;
    ResourceShapeHeader shapeHeader;&lt;br /&gt;
    u32 unknown[12]; // Always 0x0?&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vertex data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Texture data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== In codebases ==&lt;br /&gt;
# [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h FFL Decomp]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=480</id>
		<title>FFLiResourceHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=FFLiResourceHeader&amp;diff=480"/>
		<updated>2025-09-24T14:48:41Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;&amp;lt;TODO rename to struct&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;FFLResMiddle.dat&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FFLResHigh.dat&amp;lt;/code&amp;gt; are [[Mii Resources|Mii resource files]] that specify both &#039;&#039;vertex&#039;&#039; and &#039;&#039;texture&#039;&#039; data.&lt;br /&gt;
&lt;br /&gt;
On the Wii U, the location of these at MLC are at: &amp;lt;code&amp;gt;/sys/title/0005001b/10056000/content/FFLRes...&amp;lt;/code&amp;gt;. There are also &amp;quot;LG&amp;quot; variants of both, meant to be used for linear gamma. (Differences are unknown, shapes are all unchanged.)&lt;br /&gt;
&lt;br /&gt;
== Header format ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
struct ResourcePartsInfo {&lt;br /&gt;
    u32 dataPos;&lt;br /&gt;
    u32 dataSize;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel;&lt;br /&gt;
    u8 windowBits;&lt;br /&gt;
    u8 memoryLevel;&lt;br /&gt;
    u8 strategy;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceShapeHeader {&lt;br /&gt;
    u32 maxSize[12];&lt;br /&gt;
    ResourcePartsInfo beard[4];&lt;br /&gt;
    ResourcePartsInfo hatNormal[132];&lt;br /&gt;
    ResourcePartsInfo hatCap[132];&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo glass[1];&lt;br /&gt;
    ResourcePartsInfo mask[12];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
    ResourcePartsInfo nose[18];&lt;br /&gt;
    ResourcePartsInfo hairNormal[132];&lt;br /&gt;
    ResourcePartsInfo hairCap[132];&lt;br /&gt;
    ResourcePartsInfo foreheadNormal[132];&lt;br /&gt;
    ResourcePartsInfo foreheadCap[132];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader {&lt;br /&gt;
    u32 maxSize[11];&lt;br /&gt;
    ResourcePartsInfo beard[3];&lt;br /&gt;
    ResourcePartsInfo hat[132];&lt;br /&gt;
    ResourcePartsInfo eye[62];     // [80] in AFL&lt;br /&gt;
    ResourcePartsInfo eyebrow[24]; // [28] in AFL&lt;br /&gt;
    ResourcePartsInfo faceline[12];&lt;br /&gt;
    ResourcePartsInfo faceMakeup[12];&lt;br /&gt;
    ResourcePartsInfo glass[9]; // [20] in AFL&lt;br /&gt;
    ResourcePartsInfo mole[2];&lt;br /&gt;
    ResourcePartsInfo mouth[37]; // [52] in AFL&lt;br /&gt;
    ResourcePartsInfo mustache[6];&lt;br /&gt;
    ResourcePartsInfo noseline[18];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceHeader { &lt;br /&gt;
    u32 signature; // &amp;quot;FFRA&amp;quot;&lt;br /&gt;
    u32 version;&lt;br /&gt;
    u32 uncompressedBufferSize;&lt;br /&gt;
    u32 expandedBufferSize;&lt;br /&gt;
    u32 expanded;&lt;br /&gt;
    ResourceTextureHeader textureHeader;&lt;br /&gt;
    ResourceShapeHeader shapeHeader;&lt;br /&gt;
    u32 unknown[12]; // Always 0x0?&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vertex data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Texture data format ==&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== In codebases ==&lt;br /&gt;
# [https://github.com/aboood40091/ffl/blob/73fe9fc70c0f96ebea373122e50f6d3acc443180/include/nn/ffl/FFLiResourceHeader.h FFL Decomp]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=479</id>
		<title>Nn::mii::detail::ResourceTextureHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=479"/>
		<updated>2025-09-24T14:46:50Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used on [[Nintendo Switch]] in NXTextureMidSRGB.dat, and on [[Nintendo Switch 2]] in OunceTextureMidSRGB.dat.&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
The file name is composed of four parts: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a \text{Texture} b c\text{.dat}&amp;lt;/math&amp;gt;, where &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a&amp;lt;/math&amp;gt; is the console (NX, Ounce), &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b&amp;lt;/math&amp;gt; is the size (Mid, High, Poster), and &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c&amp;lt;/math&amp;gt; is the colorspace (Linear, SRGB).&lt;br /&gt;
&lt;br /&gt;
=== On Switch 2 ===&lt;br /&gt;
Observed on Switch 2 ([https://switch2brew.org/w/index.php?title=Title_list title ID 0400000000000849]):&lt;br /&gt;
&lt;br /&gt;
* OunceTextureMidSRGB.dat&lt;br /&gt;
* OunceTextureHighSRGB.dat&lt;br /&gt;
&lt;br /&gt;
High textures are 2x height and width compared to Mid textures. (Shapes are same across NX and Ounce.)&lt;br /&gt;
&lt;br /&gt;
While NX textures use Tegra swizzling, Ounce textures use Desktop Nvidia (Orin) swizzling&amp;lt;ref&amp;gt;https://github.com/ScanMountGoat/tegra_swizzle/compare/main...KillzXGaming:tegra_swizzle:main&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Textures have been successfully extracted using [[Vee (Unofficial)|vfl-cli]] (although with inaccurate color channels..)&lt;br /&gt;
&lt;br /&gt;
== Struct Format (Header) ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
enum ResourceMemoryLevel : u8 {&lt;br /&gt;
    ResourceMemoryLevel_1=1,&lt;br /&gt;
    ResourceMemoryLevel_Min=1,&lt;br /&gt;
    ResourceMemoryLevel_2=2,&lt;br /&gt;
    ResourceMemoryLevel_3=3,&lt;br /&gt;
    ResourceMemoryLevel_4=4,&lt;br /&gt;
    ResourceMemoryLevel_5=5,&lt;br /&gt;
    ResourceMemoryLevel_6=6,&lt;br /&gt;
    ResourceMemoryLevel_7=7,&lt;br /&gt;
    ResourceMemoryLevel_8=8,&lt;br /&gt;
    ResourceMemoryLevel_Default=8,&lt;br /&gt;
    ResourceMemoryLevel_9=9,&lt;br /&gt;
    ResourceMemoryLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceCompressLevel : u8 {&lt;br /&gt;
    ResourceCompressLevel_0=0,   // Z_NO_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Min=0,&lt;br /&gt;
    ResourceCompressLevel_1=1,   // Z_BEST_SPEED&lt;br /&gt;
    ResourceCompressLevel_2=2,&lt;br /&gt;
    ResourceCompressLevel_3=3,&lt;br /&gt;
    ResourceCompressLevel_4=4,&lt;br /&gt;
    ResourceCompressLevel_5=5,&lt;br /&gt;
    ResourceCompressLevel_6=6,&lt;br /&gt;
    ResourceCompressLevel_Default=6,&lt;br /&gt;
    ResourceCompressLevel_7=7,&lt;br /&gt;
    ResourceCompressLevel_8=8,&lt;br /&gt;
    ResourceCompressLevel_9=9,   // Z_BEST_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceCommonAttribute { // Size = 0x10&lt;br /&gt;
    // Same size as FFLiResourcePartsInfo, identical up to compressLevel.&lt;br /&gt;
    u32 offset;&lt;br /&gt;
    u32 size;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel; // ResourceCompressLevel&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 windowBits; // FFLiResourceWindowBits&lt;br /&gt;
    u8 memoryLevel;   // ResourceMemoryLevel / Verified but unused.&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 strategy;   // FFLiResourceStrategy&lt;br /&gt;
    u8 pad[2];        // Unused padding for alignment.&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureType : u8 {&lt;br /&gt;
    ResourceTextureType_Hat=0,&lt;br /&gt;
    ResourceTextureType_Eye=1,&lt;br /&gt;
    ResourceTextureType_Eyebrow=2,&lt;br /&gt;
    ResourceTextureType_Beard=3,&lt;br /&gt;
    ResourceTextureType_Wrinkle=4,&lt;br /&gt;
    ResourceTextureType_Make=5,&lt;br /&gt;
    ResourceTextureType_Glass=6,&lt;br /&gt;
    ResourceTextureType_Mole=7,&lt;br /&gt;
    ResourceTextureType_Mouth=8,&lt;br /&gt;
    ResourceTextureType_Mustache=9,&lt;br /&gt;
    ResourceTextureType_Noseline=10,&lt;br /&gt;
    ResourceTextureType_End=11&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureAttribute { // Size = 0xc&lt;br /&gt;
    // Same size as FFLiResourceTextureFooter, not identical.&lt;br /&gt;
    u32 alignment;&lt;br /&gt;
    u16 width;&lt;br /&gt;
    u16 height;&lt;br /&gt;
    u8 format;   // ResourceTextureFormat&lt;br /&gt;
    u8 mipCount;&lt;br /&gt;
    u8 tileMode; // ResourceTileMode&lt;br /&gt;
    u8 _pad[1];  // Unused padding for alignment.&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTileMode : u8 {&lt;br /&gt;
    ResourceTileMode_Optimal=0,&lt;br /&gt;
    ResourceTileMode_Linear=1,&lt;br /&gt;
    ResourceTileMode_End=2&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureFormat : u8 {&lt;br /&gt;
    // Matches FFL.&lt;br /&gt;
    ResourceTextureFormat_R8_Unorm=0,&lt;br /&gt;
    ResourceTextureFormat_R8_B8_Unorm=1,&lt;br /&gt;
    ResourceTextureFormat_R8_G8_B8_A8_Unorm=2,&lt;br /&gt;
    ResourceTextureFormat_BC4_Unorm=3,&lt;br /&gt;
    ResourceTextureFormat_BC5_Unorm=4,&lt;br /&gt;
    ResourceTextureFormat_BC7_Unorm=5,&lt;br /&gt;
    ResourceTextureFormat_Astc4x4_Unorm=6,&lt;br /&gt;
    ResourceTextureFormat_End=7&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct TextureElement { // ResourceTextureHeader::Element / Size = 0x1c&lt;br /&gt;
     ResourceCommonAttribute common;&lt;br /&gt;
     ResourceTextureAttribute texture;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader { // Size = 0x2428&lt;br /&gt;
    u32 signature;          // 0x5254464e / &amp;quot;NFTR&amp;quot;&lt;br /&gt;
    u32 version;            // 1&lt;br /&gt;
    u32 fileSize;           // Includes size of header.&lt;br /&gt;
    u32 maxSize[11];        // ResourceTextureType_End&lt;br /&gt;
    u32 maxAlignment[11];   // Either 8 or 16.&lt;br /&gt;
    TextureElement hat[132];     // HairType_End&lt;br /&gt;
    TextureElement eye[62];      // EyeType_ResourceCount&lt;br /&gt;
    TextureElement eyebrow[24];  // EyebrowType_End&lt;br /&gt;
    TextureElement beard[2];     // BeardType_TextureCount&lt;br /&gt;
    TextureElement wrinkle[12];  // FacelineWrinkle_End&lt;br /&gt;
    TextureElement make[12];     // FacelineMake_End&lt;br /&gt;
    TextureElement glass[20];    // GlassType_End&lt;br /&gt;
    TextureElement mole[2];      // MoleType_End&lt;br /&gt;
    TextureElement mouth[37];    // MouthType_ResourceCount&lt;br /&gt;
    TextureElement mustache[6];  // MustacheType_End&lt;br /&gt;
    TextureElement noseline[18]; // NoseType_End&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ResourceTextureHeader resourcetextureheader_at_0x00 @ 0x00;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In Codebases ==&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_resources/src/tex.rs#L236 Vee Face Library]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=478</id>
		<title>Nn::mii::detail::ResourceTextureHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=478"/>
		<updated>2025-09-24T14:46:32Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used on [[Nintendo Switch]] in NXTextureMidSRGB.dat, and on [[Nintendo Switch 2]] in OunceTextureMidSRGB.dat.&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
The file name is composed of four parts: &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a \text{Texture} b c\text{.dat}&amp;lt;/math&amp;gt;, where &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a&amp;lt;/math&amp;gt;is the console (NX, Ounce), &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b&amp;lt;/math&amp;gt;is the size (Mid, High, Poster), and &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c&amp;lt;/math&amp;gt;is the colorspace (Linear, SRGB).&lt;br /&gt;
&lt;br /&gt;
=== On Switch 2 ===&lt;br /&gt;
Observed on Switch 2 ([https://switch2brew.org/w/index.php?title=Title_list title ID 0400000000000849]):&lt;br /&gt;
&lt;br /&gt;
* OunceTextureMidSRGB.dat&lt;br /&gt;
* OunceTextureHighSRGB.dat&lt;br /&gt;
&lt;br /&gt;
High textures are 2x height and width compared to Mid textures. (Shapes are same across NX and Ounce.)&lt;br /&gt;
&lt;br /&gt;
While NX textures use Tegra swizzling, Ounce textures use Desktop Nvidia (Orin) swizzling&amp;lt;ref&amp;gt;https://github.com/ScanMountGoat/tegra_swizzle/compare/main...KillzXGaming:tegra_swizzle:main&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Textures have been successfully extracted using [[Vee (Unofficial)|vfl-cli]] (although with inaccurate color channels..)&lt;br /&gt;
&lt;br /&gt;
== Struct Format (Header) ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
enum ResourceMemoryLevel : u8 {&lt;br /&gt;
    ResourceMemoryLevel_1=1,&lt;br /&gt;
    ResourceMemoryLevel_Min=1,&lt;br /&gt;
    ResourceMemoryLevel_2=2,&lt;br /&gt;
    ResourceMemoryLevel_3=3,&lt;br /&gt;
    ResourceMemoryLevel_4=4,&lt;br /&gt;
    ResourceMemoryLevel_5=5,&lt;br /&gt;
    ResourceMemoryLevel_6=6,&lt;br /&gt;
    ResourceMemoryLevel_7=7,&lt;br /&gt;
    ResourceMemoryLevel_8=8,&lt;br /&gt;
    ResourceMemoryLevel_Default=8,&lt;br /&gt;
    ResourceMemoryLevel_9=9,&lt;br /&gt;
    ResourceMemoryLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceCompressLevel : u8 {&lt;br /&gt;
    ResourceCompressLevel_0=0,   // Z_NO_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Min=0,&lt;br /&gt;
    ResourceCompressLevel_1=1,   // Z_BEST_SPEED&lt;br /&gt;
    ResourceCompressLevel_2=2,&lt;br /&gt;
    ResourceCompressLevel_3=3,&lt;br /&gt;
    ResourceCompressLevel_4=4,&lt;br /&gt;
    ResourceCompressLevel_5=5,&lt;br /&gt;
    ResourceCompressLevel_6=6,&lt;br /&gt;
    ResourceCompressLevel_Default=6,&lt;br /&gt;
    ResourceCompressLevel_7=7,&lt;br /&gt;
    ResourceCompressLevel_8=8,&lt;br /&gt;
    ResourceCompressLevel_9=9,   // Z_BEST_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceCommonAttribute { // Size = 0x10&lt;br /&gt;
    // Same size as FFLiResourcePartsInfo, identical up to compressLevel.&lt;br /&gt;
    u32 offset;&lt;br /&gt;
    u32 size;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel; // ResourceCompressLevel&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 windowBits; // FFLiResourceWindowBits&lt;br /&gt;
    u8 memoryLevel;   // ResourceMemoryLevel / Verified but unused.&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 strategy;   // FFLiResourceStrategy&lt;br /&gt;
    u8 pad[2];        // Unused padding for alignment.&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureType : u8 {&lt;br /&gt;
    ResourceTextureType_Hat=0,&lt;br /&gt;
    ResourceTextureType_Eye=1,&lt;br /&gt;
    ResourceTextureType_Eyebrow=2,&lt;br /&gt;
    ResourceTextureType_Beard=3,&lt;br /&gt;
    ResourceTextureType_Wrinkle=4,&lt;br /&gt;
    ResourceTextureType_Make=5,&lt;br /&gt;
    ResourceTextureType_Glass=6,&lt;br /&gt;
    ResourceTextureType_Mole=7,&lt;br /&gt;
    ResourceTextureType_Mouth=8,&lt;br /&gt;
    ResourceTextureType_Mustache=9,&lt;br /&gt;
    ResourceTextureType_Noseline=10,&lt;br /&gt;
    ResourceTextureType_End=11&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureAttribute { // Size = 0xc&lt;br /&gt;
    // Same size as FFLiResourceTextureFooter, not identical.&lt;br /&gt;
    u32 alignment;&lt;br /&gt;
    u16 width;&lt;br /&gt;
    u16 height;&lt;br /&gt;
    u8 format;   // ResourceTextureFormat&lt;br /&gt;
    u8 mipCount;&lt;br /&gt;
    u8 tileMode; // ResourceTileMode&lt;br /&gt;
    u8 _pad[1];  // Unused padding for alignment.&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTileMode : u8 {&lt;br /&gt;
    ResourceTileMode_Optimal=0,&lt;br /&gt;
    ResourceTileMode_Linear=1,&lt;br /&gt;
    ResourceTileMode_End=2&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureFormat : u8 {&lt;br /&gt;
    // Matches FFL.&lt;br /&gt;
    ResourceTextureFormat_R8_Unorm=0,&lt;br /&gt;
    ResourceTextureFormat_R8_B8_Unorm=1,&lt;br /&gt;
    ResourceTextureFormat_R8_G8_B8_A8_Unorm=2,&lt;br /&gt;
    ResourceTextureFormat_BC4_Unorm=3,&lt;br /&gt;
    ResourceTextureFormat_BC5_Unorm=4,&lt;br /&gt;
    ResourceTextureFormat_BC7_Unorm=5,&lt;br /&gt;
    ResourceTextureFormat_Astc4x4_Unorm=6,&lt;br /&gt;
    ResourceTextureFormat_End=7&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct TextureElement { // ResourceTextureHeader::Element / Size = 0x1c&lt;br /&gt;
     ResourceCommonAttribute common;&lt;br /&gt;
     ResourceTextureAttribute texture;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader { // Size = 0x2428&lt;br /&gt;
    u32 signature;          // 0x5254464e / &amp;quot;NFTR&amp;quot;&lt;br /&gt;
    u32 version;            // 1&lt;br /&gt;
    u32 fileSize;           // Includes size of header.&lt;br /&gt;
    u32 maxSize[11];        // ResourceTextureType_End&lt;br /&gt;
    u32 maxAlignment[11];   // Either 8 or 16.&lt;br /&gt;
    TextureElement hat[132];     // HairType_End&lt;br /&gt;
    TextureElement eye[62];      // EyeType_ResourceCount&lt;br /&gt;
    TextureElement eyebrow[24];  // EyebrowType_End&lt;br /&gt;
    TextureElement beard[2];     // BeardType_TextureCount&lt;br /&gt;
    TextureElement wrinkle[12];  // FacelineWrinkle_End&lt;br /&gt;
    TextureElement make[12];     // FacelineMake_End&lt;br /&gt;
    TextureElement glass[20];    // GlassType_End&lt;br /&gt;
    TextureElement mole[2];      // MoleType_End&lt;br /&gt;
    TextureElement mouth[37];    // MouthType_ResourceCount&lt;br /&gt;
    TextureElement mustache[6];  // MustacheType_End&lt;br /&gt;
    TextureElement noseline[18]; // NoseType_End&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ResourceTextureHeader resourcetextureheader_at_0x00 @ 0x00;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In Codebases ==&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_resources/src/tex.rs#L236 Vee Face Library]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=476</id>
		<title>Nn::mii::detail::ResourceTextureHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=476"/>
		<updated>2025-09-24T14:42:23Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* Struct Format (Header) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used on [[Nintendo Switch]] in NXTextureMidSRGB.dat, and on [[Nintendo Switch 2]] in OunceTextureMidSRGB.dat.&lt;br /&gt;
== On Switch 2 ==&lt;br /&gt;
Observed on Switch 2:&lt;br /&gt;
&lt;br /&gt;
* OunceTextureMidSRGB.dat&lt;br /&gt;
* OunceTextureHighSRGB.dat&lt;br /&gt;
&lt;br /&gt;
High textures are 2x height and width compared to Mid textures.&lt;br /&gt;
&lt;br /&gt;
While NX textures use Tegra swizzling, Ounce textures use Desktop Nvidia (Orin) swizzling&amp;lt;ref&amp;gt;https://github.com/ScanMountGoat/tegra_swizzle/compare/main...KillzXGaming:tegra_swizzle:main&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Textures have been successfully extracted using [[Vee (Unofficial)|vfl-cli]] (although with inaccurate color channels..)&lt;br /&gt;
&lt;br /&gt;
== Struct Format (Header) ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
enum ResourceMemoryLevel : u8 {&lt;br /&gt;
    ResourceMemoryLevel_1=1,&lt;br /&gt;
    ResourceMemoryLevel_Min=1,&lt;br /&gt;
    ResourceMemoryLevel_2=2,&lt;br /&gt;
    ResourceMemoryLevel_3=3,&lt;br /&gt;
    ResourceMemoryLevel_4=4,&lt;br /&gt;
    ResourceMemoryLevel_5=5,&lt;br /&gt;
    ResourceMemoryLevel_6=6,&lt;br /&gt;
    ResourceMemoryLevel_7=7,&lt;br /&gt;
    ResourceMemoryLevel_8=8,&lt;br /&gt;
    ResourceMemoryLevel_Default=8,&lt;br /&gt;
    ResourceMemoryLevel_9=9,&lt;br /&gt;
    ResourceMemoryLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceCompressLevel : u8 {&lt;br /&gt;
    ResourceCompressLevel_0=0,   // Z_NO_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Min=0,&lt;br /&gt;
    ResourceCompressLevel_1=1,   // Z_BEST_SPEED&lt;br /&gt;
    ResourceCompressLevel_2=2,&lt;br /&gt;
    ResourceCompressLevel_3=3,&lt;br /&gt;
    ResourceCompressLevel_4=4,&lt;br /&gt;
    ResourceCompressLevel_5=5,&lt;br /&gt;
    ResourceCompressLevel_6=6,&lt;br /&gt;
    ResourceCompressLevel_Default=6,&lt;br /&gt;
    ResourceCompressLevel_7=7,&lt;br /&gt;
    ResourceCompressLevel_8=8,&lt;br /&gt;
    ResourceCompressLevel_9=9,   // Z_BEST_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceCommonAttribute { // Size = 0x10&lt;br /&gt;
    // Same size as FFLiResourcePartsInfo, identical up to compressLevel.&lt;br /&gt;
    u32 offset;&lt;br /&gt;
    u32 size;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel; // ResourceCompressLevel&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 windowBits; // FFLiResourceWindowBits&lt;br /&gt;
    u8 memoryLevel;   // ResourceMemoryLevel / Verified but unused.&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 strategy;   // FFLiResourceStrategy&lt;br /&gt;
    u8 pad[2];        // Unused padding for alignment.&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureType : u8 {&lt;br /&gt;
    ResourceTextureType_Hat=0,&lt;br /&gt;
    ResourceTextureType_Eye=1,&lt;br /&gt;
    ResourceTextureType_Eyebrow=2,&lt;br /&gt;
    ResourceTextureType_Beard=3,&lt;br /&gt;
    ResourceTextureType_Wrinkle=4,&lt;br /&gt;
    ResourceTextureType_Make=5,&lt;br /&gt;
    ResourceTextureType_Glass=6,&lt;br /&gt;
    ResourceTextureType_Mole=7,&lt;br /&gt;
    ResourceTextureType_Mouth=8,&lt;br /&gt;
    ResourceTextureType_Mustache=9,&lt;br /&gt;
    ResourceTextureType_Noseline=10,&lt;br /&gt;
    ResourceTextureType_End=11&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureAttribute { // Size = 0xc&lt;br /&gt;
    // Same size as FFLiResourceTextureFooter, not identical.&lt;br /&gt;
    u32 alignment;&lt;br /&gt;
    u16 width;&lt;br /&gt;
    u16 height;&lt;br /&gt;
    u8 format;   // ResourceTextureFormat&lt;br /&gt;
    u8 mipCount;&lt;br /&gt;
    u8 tileMode; // ResourceTileMode&lt;br /&gt;
    u8 _pad[1];  // Unused padding for alignment.&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTileMode : u8 {&lt;br /&gt;
    ResourceTileMode_Optimal=0,&lt;br /&gt;
    ResourceTileMode_Linear=1,&lt;br /&gt;
    ResourceTileMode_End=2&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureFormat : u8 {&lt;br /&gt;
    // Matches FFL.&lt;br /&gt;
    ResourceTextureFormat_R8_Unorm=0,&lt;br /&gt;
    ResourceTextureFormat_R8_B8_Unorm=1,&lt;br /&gt;
    ResourceTextureFormat_R8_G8_B8_A8_Unorm=2,&lt;br /&gt;
    ResourceTextureFormat_BC4_Unorm=3,&lt;br /&gt;
    ResourceTextureFormat_BC5_Unorm=4,&lt;br /&gt;
    ResourceTextureFormat_BC7_Unorm=5,&lt;br /&gt;
    ResourceTextureFormat_Astc4x4_Unorm=6,&lt;br /&gt;
    ResourceTextureFormat_End=7&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct TextureElement { // ResourceTextureHeader::Element / Size = 0x1c&lt;br /&gt;
     ResourceCommonAttribute common;&lt;br /&gt;
     ResourceTextureAttribute texture;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader { // Size = 0x2428&lt;br /&gt;
    u32 signature;          // 0x5254464e / &amp;quot;NFTR&amp;quot;&lt;br /&gt;
    u32 version;            // 1&lt;br /&gt;
    u32 fileSize;           // Includes size of header.&lt;br /&gt;
    u32 maxSize[11];        // ResourceTextureType_End&lt;br /&gt;
    u32 maxAlignment[11];   // Either 8 or 16.&lt;br /&gt;
    TextureElement hat[132];     // HairType_End&lt;br /&gt;
    TextureElement eye[62];      // EyeType_ResourceCount&lt;br /&gt;
    TextureElement eyebrow[24];  // EyebrowType_End&lt;br /&gt;
    TextureElement beard[2];     // BeardType_TextureCount&lt;br /&gt;
    TextureElement wrinkle[12];  // FacelineWrinkle_End&lt;br /&gt;
    TextureElement make[12];     // FacelineMake_End&lt;br /&gt;
    TextureElement glass[20];    // GlassType_End&lt;br /&gt;
    TextureElement mole[2];      // MoleType_End&lt;br /&gt;
    TextureElement mouth[37];    // MouthType_ResourceCount&lt;br /&gt;
    TextureElement mustache[6];  // MustacheType_End&lt;br /&gt;
    TextureElement noseline[18]; // NoseType_End&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ResourceTextureHeader resourcetextureheader_at_0x00 @ 0x00;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In Codebases ==&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_resources/src/tex.rs#L236 Vee Face Library]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=475</id>
		<title>Template:Resource-Navbox</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=475"/>
		<updated>2025-09-24T14:41:01Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|bodyclass  = something&lt;br /&gt;
|name       = Resource-Navbox&lt;br /&gt;
|title      = [[Mii Resources|Mii Resource Formats]]&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
&lt;br /&gt;
|group1 = [[Revolution Face Library|RFL]]&lt;br /&gt;
|list1 = &lt;br /&gt;
* [[RFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group2 = [[Nitro Face Library|NFL]]&lt;br /&gt;
|list2 = &lt;br /&gt;
* [[NFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group3 = [[Centrair Face Library|CFL]]&lt;br /&gt;
|list3 = &lt;br /&gt;
* [[CFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group4 = [[Cafe Face Library|FFL]]&lt;br /&gt;
|list4 = &lt;br /&gt;
* [[FFL_Res＊.dat]]&lt;br /&gt;
* [[AFL_ResHigh_＊.dat]]&lt;br /&gt;
&lt;br /&gt;
|group5 = [[nn::mii]]::detail&lt;br /&gt;
|list5 = &lt;br /&gt;
* [[nn::mii::detail::ResourceShapeHeader|ResourceShapeHeader]]&lt;br /&gt;
* [[nn::mii::detail::ResourceTextureHeader|ResourceTextureHeader]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=474</id>
		<title>Nn::mii::detail::ResourceTextureHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=474"/>
		<updated>2025-09-24T14:40:44Z</updated>

		<summary type="html">&lt;p&gt;Jo: /* On Switch 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used on [[Nintendo Switch]] in NXTextureMidSRGB.dat, and on [[Nintendo Switch 2]] in OunceTextureMidSRGB.dat.&lt;br /&gt;
== On Switch 2 ==&lt;br /&gt;
Observed on Switch 2:&lt;br /&gt;
&lt;br /&gt;
* OunceTextureMidSRGB.dat&lt;br /&gt;
* OunceTextureHighSRGB.dat&lt;br /&gt;
&lt;br /&gt;
High textures are 2x height and width compared to Mid textures.&lt;br /&gt;
&lt;br /&gt;
While NX textures use Tegra swizzling, Ounce textures use Desktop Nvidia (Orin) swizzling&amp;lt;ref&amp;gt;https://github.com/ScanMountGoat/tegra_swizzle/compare/main...KillzXGaming:tegra_swizzle:main&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Textures have been successfully extracted using [[Vee (Unofficial)|vfl-cli]] (although with inaccurate color channels..)&lt;br /&gt;
&lt;br /&gt;
== Struct Format (Header) ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
enum AttributeType : u8 {&lt;br /&gt;
    AttributeType_Position = 0, // AttributeFormat_16_16_16_16_Float / _p0&lt;br /&gt;
    AttributeType_Normal=1,   // AttributeFormat_10_10_10_2_Snorm / _n0&lt;br /&gt;
    AttributeType_Uv=2,       // AttributeFormat_16_16_Float / _u0&lt;br /&gt;
    AttributeType_Tangent=3,  // AttributeFormat_8_8_8_8_Snorm / _t0&lt;br /&gt;
    AttributeType_Param=4,    // AttributeFormat_8_8_8_8_Unorm / _c0 (Color)&lt;br /&gt;
    AttributeType_End=5&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceMemoryLevel : u8 {&lt;br /&gt;
    ResourceMemoryLevel_1=1,&lt;br /&gt;
    ResourceMemoryLevel_Min=1,&lt;br /&gt;
    ResourceMemoryLevel_2=2,&lt;br /&gt;
    ResourceMemoryLevel_3=3,&lt;br /&gt;
    ResourceMemoryLevel_4=4,&lt;br /&gt;
    ResourceMemoryLevel_5=5,&lt;br /&gt;
    ResourceMemoryLevel_6=6,&lt;br /&gt;
    ResourceMemoryLevel_7=7,&lt;br /&gt;
    ResourceMemoryLevel_8=8,&lt;br /&gt;
    ResourceMemoryLevel_Default=8,&lt;br /&gt;
    ResourceMemoryLevel_9=9,&lt;br /&gt;
    ResourceMemoryLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceCompressLevel : u8 {&lt;br /&gt;
    ResourceCompressLevel_0=0,   // Z_NO_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Min=0,&lt;br /&gt;
    ResourceCompressLevel_1=1,   // Z_BEST_SPEED&lt;br /&gt;
    ResourceCompressLevel_2=2,&lt;br /&gt;
    ResourceCompressLevel_3=3,&lt;br /&gt;
    ResourceCompressLevel_4=4,&lt;br /&gt;
    ResourceCompressLevel_5=5,&lt;br /&gt;
    ResourceCompressLevel_6=6,&lt;br /&gt;
    ResourceCompressLevel_Default=6,&lt;br /&gt;
    ResourceCompressLevel_7=7,&lt;br /&gt;
    ResourceCompressLevel_8=8,&lt;br /&gt;
    ResourceCompressLevel_9=9,   // Z_BEST_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceCommonAttribute { // Size = 0x10&lt;br /&gt;
    // Same size as FFLiResourcePartsInfo, identical up to compressLevel.&lt;br /&gt;
    u32 offset;&lt;br /&gt;
    u32 size;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel; // ResourceCompressLevel&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 windowBits; // FFLiResourceWindowBits&lt;br /&gt;
    u8 memoryLevel;   // ResourceMemoryLevel / Verified but unused.&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 strategy;   // FFLiResourceStrategy&lt;br /&gt;
    u8 pad[2];        // Unused padding for alignment.&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureType : u8 {&lt;br /&gt;
    ResourceTextureType_Hat=0,&lt;br /&gt;
    ResourceTextureType_Eye=1,&lt;br /&gt;
    ResourceTextureType_Eyebrow=2,&lt;br /&gt;
    ResourceTextureType_Beard=3,&lt;br /&gt;
    ResourceTextureType_Wrinkle=4,&lt;br /&gt;
    ResourceTextureType_Make=5,&lt;br /&gt;
    ResourceTextureType_Glass=6,&lt;br /&gt;
    ResourceTextureType_Mole=7,&lt;br /&gt;
    ResourceTextureType_Mouth=8,&lt;br /&gt;
    ResourceTextureType_Mustache=9,&lt;br /&gt;
    ResourceTextureType_Noseline=10,&lt;br /&gt;
    ResourceTextureType_End=11&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureAttribute { // Size = 0xc&lt;br /&gt;
    // Same size as FFLiResourceTextureFooter, not identical.&lt;br /&gt;
    u32 alignment;&lt;br /&gt;
    u16 width;&lt;br /&gt;
    u16 height;&lt;br /&gt;
    u8 format;   // ResourceTextureFormat&lt;br /&gt;
    u8 mipCount;&lt;br /&gt;
    u8 tileMode; // ResourceTileMode&lt;br /&gt;
    u8 _pad[1];  // Unused padding for alignment.&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTileMode : u8 {&lt;br /&gt;
    ResourceTileMode_Optimal=0,&lt;br /&gt;
    ResourceTileMode_Linear=1,&lt;br /&gt;
    ResourceTileMode_End=2&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureFormat : u8 {&lt;br /&gt;
    // Matches FFL.&lt;br /&gt;
    ResourceTextureFormat_R8_Unorm=0,&lt;br /&gt;
    ResourceTextureFormat_R8_B8_Unorm=1,&lt;br /&gt;
    ResourceTextureFormat_R8_G8_B8_A8_Unorm=2,&lt;br /&gt;
    ResourceTextureFormat_BC4_Unorm=3,&lt;br /&gt;
    ResourceTextureFormat_BC5_Unorm=4,&lt;br /&gt;
    ResourceTextureFormat_BC7_Unorm=5,&lt;br /&gt;
    ResourceTextureFormat_Astc4x4_Unorm=6,&lt;br /&gt;
    ResourceTextureFormat_End=7&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct TextureElement { // ResourceTextureHeader::Element / Size = 0x1c&lt;br /&gt;
     ResourceCommonAttribute common;&lt;br /&gt;
     ResourceTextureAttribute texture;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader { // Size = 0x2428&lt;br /&gt;
    u32 signature;          // 0x5254464e / &amp;quot;NFTR&amp;quot;&lt;br /&gt;
    u32 version;            // 1&lt;br /&gt;
    u32 fileSize;           // Includes size of header.&lt;br /&gt;
    u32 maxSize[11];        // ResourceTextureType_End&lt;br /&gt;
    u32 maxAlignment[11];   // Either 8 or 16.&lt;br /&gt;
    TextureElement hat[132];     // HairType_End&lt;br /&gt;
    TextureElement eye[62];      // EyeType_ResourceCount&lt;br /&gt;
    TextureElement eyebrow[24];  // EyebrowType_End&lt;br /&gt;
    TextureElement beard[2];     // BeardType_TextureCount&lt;br /&gt;
    TextureElement wrinkle[12];  // FacelineWrinkle_End&lt;br /&gt;
    TextureElement make[12];     // FacelineMake_End&lt;br /&gt;
    TextureElement glass[20];    // GlassType_End&lt;br /&gt;
    TextureElement mole[2];      // MoleType_End&lt;br /&gt;
    TextureElement mouth[37];    // MouthType_ResourceCount&lt;br /&gt;
    TextureElement mustache[6];  // MustacheType_End&lt;br /&gt;
    TextureElement noseline[18]; // NoseType_End&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ResourceTextureHeader resourcetextureheader_at_0x00 @ 0x00;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In Codebases ==&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_resources/src/tex.rs#L236 Vee Face Library]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=473</id>
		<title>Template:Resource-Navbox</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=473"/>
		<updated>2025-09-24T14:39:56Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|bodyclass  = something&lt;br /&gt;
|name       = Resource-Navbox&lt;br /&gt;
|title      = [[Mii Resources|Mii Resource Formats]]&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
&lt;br /&gt;
|group1 = [[Revolution Face Library|RFL]]&lt;br /&gt;
|list1 = &lt;br /&gt;
* [[RFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group2 = [[Nitro Face Library|NFL]]&lt;br /&gt;
|list2 = &lt;br /&gt;
* [[NFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group3 = [[Centrair Face Library|CFL]]&lt;br /&gt;
|list3 = &lt;br /&gt;
* [[CFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group4 = [[Cafe Face Library|FFL]]&lt;br /&gt;
|list4 = &lt;br /&gt;
* [[FFL_Res＊.dat]]&lt;br /&gt;
* [[AFL_ResHigh_＊.dat]]&lt;br /&gt;
&lt;br /&gt;
|group5 = [[nn::mii]]::detail&lt;br /&gt;
|list5 = &lt;br /&gt;
* [[nn::mii::detail::ResourceShapeHeader|ResourceShapeHeader]]&lt;br /&gt;
* [[nn::mii::detail::ResourceTextureHeader|ResourceTextureHeader]]&lt;br /&gt;
* [[OunceTexture＊.dat]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Shape%EF%BC%8A.dat&amp;diff=472</id>
		<title>Shape＊.dat</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Shape%EF%BC%8A.dat&amp;diff=472"/>
		<updated>2025-09-24T14:39:31Z</updated>

		<summary type="html">&lt;p&gt;Jo: Jo moved page Shape＊.dat to Nn::mii::detail::ResourceShapeHeader&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Nn::mii::detail::ResourceShapeHeader]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceShapeHeader&amp;diff=471</id>
		<title>Nn::mii::detail::ResourceShapeHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceShapeHeader&amp;diff=471"/>
		<updated>2025-09-24T14:39:31Z</updated>

		<summary type="html">&lt;p&gt;Jo: Jo moved page Shape＊.dat to Nn::mii::detail::ResourceShapeHeader&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ShapeMid.dat, and others.&lt;br /&gt;
&lt;br /&gt;
== Struct Format (Header) ==&lt;br /&gt;
This abridged sample is implemented in Rust, using the binrw library. This sample is edited for readability, full sample can be found here&amp;lt;ref&amp;gt;https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_resources/src/shape.rs#L1&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
/// Specifies where data is, now big it is, and how compressed it is.&lt;br /&gt;
/// Used for both textures and shapes.&lt;br /&gt;
#[derive(BinRead)]&lt;br /&gt;
pub struct ResourceCommonAttribute {&lt;br /&gt;
    pub offset: u32,&lt;br /&gt;
    pub size: u32,&lt;br /&gt;
    pub size_compressed: u32,&lt;br /&gt;
    pub compression_level: u8,&lt;br /&gt;
    pub memory_level: u8,&lt;br /&gt;
    pad: u16,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/// Specifies where {vertex,index} buffers are, and how big they are.&lt;br /&gt;
#[derive(BinRead)]&lt;br /&gt;
pub struct ResourceShapeAttribute {&lt;br /&gt;
    pub attr_offset: [u32; 5],&lt;br /&gt;
    pub attr_size: [u32; 5],&lt;br /&gt;
    pub index_offset: u32,&lt;br /&gt;
    pub index_size: u32,&lt;br /&gt;
    pub bounding_box: [[f32; 3]; 2],&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/// All the data required to read a mesh from the shape file.&lt;br /&gt;
/// Essentially a &#039;pointer&#039; to the data.&lt;br /&gt;
#[derive(BinRead)]&lt;br /&gt;
pub struct ShapeElement {&lt;br /&gt;
    pub common: ResourceCommonAttribute,&lt;br /&gt;
    pub shape: ResourceShapeAttribute,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/// Contains positional data for any headwear that&lt;br /&gt;
/// may be placed on the model post-render.&lt;br /&gt;
#[derive(BinRead)]&lt;br /&gt;
pub struct ResourceShapeHairTransform {&lt;br /&gt;
    front_translate: [f32; 3],&lt;br /&gt;
    front_rotate: [f32; 3],&lt;br /&gt;
    side_translate: [f32; 3],&lt;br /&gt;
    side_rotate: [f32; 3],&lt;br /&gt;
    top_translate: [f32; 3],&lt;br /&gt;
    top_rotate: [f32; 3],&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/// Contains positional data used to move face parts&lt;br /&gt;
/// like the beard, nose, hair, glasses, etc.&lt;br /&gt;
#[derive(BinRead)]&lt;br /&gt;
pub struct ResourceShapeFacelineTransform {&lt;br /&gt;
    pub hair_translate: [f32; 3],&lt;br /&gt;
    pub nose_translate: [f32; 3],&lt;br /&gt;
    pub beard_translate: [f32; 3],&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/// Header of the `Shape` resource file.&lt;br /&gt;
#[derive(BinRead)]&lt;br /&gt;
#[br(little, magic = b&amp;quot;NFSR&amp;quot;)]&lt;br /&gt;
pub struct ResourceShape {&lt;br /&gt;
    ver: u32,&lt;br /&gt;
    file_size: u32,&lt;br /&gt;
    max_size: [u32; 12],&lt;br /&gt;
    max_alignment: [u32; 12],&lt;br /&gt;
    pub beard: [ShapeElement; 4],&lt;br /&gt;
    pub face_line: [ShapeElement; 12],&lt;br /&gt;
    pub mask: [ShapeElement; 12],&lt;br /&gt;
    pub hat_normal: [ShapeElement; 132],&lt;br /&gt;
    pub hat_cap: [ShapeElement; 132],&lt;br /&gt;
    pub forehead_normal: [ShapeElement; 132],&lt;br /&gt;
    pub forehead_cap: [ShapeElement; 132],&lt;br /&gt;
    pub hair_normal: [ShapeElement; 132],&lt;br /&gt;
    pub hair_cap: [ShapeElement; 132],&lt;br /&gt;
&lt;br /&gt;
    pub glasses: [ShapeElement; 1],&lt;br /&gt;
&lt;br /&gt;
    pub nose: [ShapeElement; 18],&lt;br /&gt;
    pub nose_line: [ShapeElement; 18],&lt;br /&gt;
&lt;br /&gt;
    pub hair_transform: [ResourceShapeHairTransform; 132],&lt;br /&gt;
    pub face_line_transform: [ResourceShapeFacelineTransform; 12],&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=470</id>
		<title>Nn::mii::detail::ResourceTextureHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=470"/>
		<updated>2025-09-24T14:39:18Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used on [[Nintendo Switch]] in NXTextureMidSRGB.dat, and on [[Nintendo Switch 2]] in OunceTextureMidSRGB.dat.&lt;br /&gt;
&lt;br /&gt;
== On Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
== Struct Format (Header) ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
enum AttributeType : u8 {&lt;br /&gt;
    AttributeType_Position = 0, // AttributeFormat_16_16_16_16_Float / _p0&lt;br /&gt;
    AttributeType_Normal=1,   // AttributeFormat_10_10_10_2_Snorm / _n0&lt;br /&gt;
    AttributeType_Uv=2,       // AttributeFormat_16_16_Float / _u0&lt;br /&gt;
    AttributeType_Tangent=3,  // AttributeFormat_8_8_8_8_Snorm / _t0&lt;br /&gt;
    AttributeType_Param=4,    // AttributeFormat_8_8_8_8_Unorm / _c0 (Color)&lt;br /&gt;
    AttributeType_End=5&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceMemoryLevel : u8 {&lt;br /&gt;
    ResourceMemoryLevel_1=1,&lt;br /&gt;
    ResourceMemoryLevel_Min=1,&lt;br /&gt;
    ResourceMemoryLevel_2=2,&lt;br /&gt;
    ResourceMemoryLevel_3=3,&lt;br /&gt;
    ResourceMemoryLevel_4=4,&lt;br /&gt;
    ResourceMemoryLevel_5=5,&lt;br /&gt;
    ResourceMemoryLevel_6=6,&lt;br /&gt;
    ResourceMemoryLevel_7=7,&lt;br /&gt;
    ResourceMemoryLevel_8=8,&lt;br /&gt;
    ResourceMemoryLevel_Default=8,&lt;br /&gt;
    ResourceMemoryLevel_9=9,&lt;br /&gt;
    ResourceMemoryLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceCompressLevel : u8 {&lt;br /&gt;
    ResourceCompressLevel_0=0,   // Z_NO_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Min=0,&lt;br /&gt;
    ResourceCompressLevel_1=1,   // Z_BEST_SPEED&lt;br /&gt;
    ResourceCompressLevel_2=2,&lt;br /&gt;
    ResourceCompressLevel_3=3,&lt;br /&gt;
    ResourceCompressLevel_4=4,&lt;br /&gt;
    ResourceCompressLevel_5=5,&lt;br /&gt;
    ResourceCompressLevel_6=6,&lt;br /&gt;
    ResourceCompressLevel_Default=6,&lt;br /&gt;
    ResourceCompressLevel_7=7,&lt;br /&gt;
    ResourceCompressLevel_8=8,&lt;br /&gt;
    ResourceCompressLevel_9=9,   // Z_BEST_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceCommonAttribute { // Size = 0x10&lt;br /&gt;
    // Same size as FFLiResourcePartsInfo, identical up to compressLevel.&lt;br /&gt;
    u32 offset;&lt;br /&gt;
    u32 size;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel; // ResourceCompressLevel&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 windowBits; // FFLiResourceWindowBits&lt;br /&gt;
    u8 memoryLevel;   // ResourceMemoryLevel / Verified but unused.&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 strategy;   // FFLiResourceStrategy&lt;br /&gt;
    u8 pad[2];        // Unused padding for alignment.&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureType : u8 {&lt;br /&gt;
    ResourceTextureType_Hat=0,&lt;br /&gt;
    ResourceTextureType_Eye=1,&lt;br /&gt;
    ResourceTextureType_Eyebrow=2,&lt;br /&gt;
    ResourceTextureType_Beard=3,&lt;br /&gt;
    ResourceTextureType_Wrinkle=4,&lt;br /&gt;
    ResourceTextureType_Make=5,&lt;br /&gt;
    ResourceTextureType_Glass=6,&lt;br /&gt;
    ResourceTextureType_Mole=7,&lt;br /&gt;
    ResourceTextureType_Mouth=8,&lt;br /&gt;
    ResourceTextureType_Mustache=9,&lt;br /&gt;
    ResourceTextureType_Noseline=10,&lt;br /&gt;
    ResourceTextureType_End=11&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureAttribute { // Size = 0xc&lt;br /&gt;
    // Same size as FFLiResourceTextureFooter, not identical.&lt;br /&gt;
    u32 alignment;&lt;br /&gt;
    u16 width;&lt;br /&gt;
    u16 height;&lt;br /&gt;
    u8 format;   // ResourceTextureFormat&lt;br /&gt;
    u8 mipCount;&lt;br /&gt;
    u8 tileMode; // ResourceTileMode&lt;br /&gt;
    u8 _pad[1];  // Unused padding for alignment.&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTileMode : u8 {&lt;br /&gt;
    ResourceTileMode_Optimal=0,&lt;br /&gt;
    ResourceTileMode_Linear=1,&lt;br /&gt;
    ResourceTileMode_End=2&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureFormat : u8 {&lt;br /&gt;
    // Matches FFL.&lt;br /&gt;
    ResourceTextureFormat_R8_Unorm=0,&lt;br /&gt;
    ResourceTextureFormat_R8_B8_Unorm=1,&lt;br /&gt;
    ResourceTextureFormat_R8_G8_B8_A8_Unorm=2,&lt;br /&gt;
    ResourceTextureFormat_BC4_Unorm=3,&lt;br /&gt;
    ResourceTextureFormat_BC5_Unorm=4,&lt;br /&gt;
    ResourceTextureFormat_BC7_Unorm=5,&lt;br /&gt;
    ResourceTextureFormat_Astc4x4_Unorm=6,&lt;br /&gt;
    ResourceTextureFormat_End=7&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct TextureElement { // ResourceTextureHeader::Element / Size = 0x1c&lt;br /&gt;
     ResourceCommonAttribute common;&lt;br /&gt;
     ResourceTextureAttribute texture;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader { // Size = 0x2428&lt;br /&gt;
    u32 signature;          // 0x5254464e / &amp;quot;NFTR&amp;quot;&lt;br /&gt;
    u32 version;            // 1&lt;br /&gt;
    u32 fileSize;           // Includes size of header.&lt;br /&gt;
    u32 maxSize[11];        // ResourceTextureType_End&lt;br /&gt;
    u32 maxAlignment[11];   // Either 8 or 16.&lt;br /&gt;
    TextureElement hat[132];     // HairType_End&lt;br /&gt;
    TextureElement eye[62];      // EyeType_ResourceCount&lt;br /&gt;
    TextureElement eyebrow[24];  // EyebrowType_End&lt;br /&gt;
    TextureElement beard[2];     // BeardType_TextureCount&lt;br /&gt;
    TextureElement wrinkle[12];  // FacelineWrinkle_End&lt;br /&gt;
    TextureElement make[12];     // FacelineMake_End&lt;br /&gt;
    TextureElement glass[20];    // GlassType_End&lt;br /&gt;
    TextureElement mole[2];      // MoleType_End&lt;br /&gt;
    TextureElement mouth[37];    // MouthType_ResourceCount&lt;br /&gt;
    TextureElement mustache[6];  // MustacheType_End&lt;br /&gt;
    TextureElement noseline[18]; // NoseType_End&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ResourceTextureHeader resourcetextureheader_at_0x00 @ 0x00;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In Codebases ==&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_resources/src/tex.rs#L236 Vee Face Library]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=468</id>
		<title>Template:Resource-Navbox</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=468"/>
		<updated>2025-09-24T14:38:13Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|bodyclass  = something&lt;br /&gt;
|name       = Resource-Navbox&lt;br /&gt;
|title      = [[Mii Resources|Mii Resource Formats]]&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
&lt;br /&gt;
|group1 = [[Revolution Face Library|RFL]]&lt;br /&gt;
|list1 = &lt;br /&gt;
* [[RFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group2 = [[Nitro Face Library|NFL]]&lt;br /&gt;
|list2 = &lt;br /&gt;
* [[NFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group3 = [[Centrair Face Library|CFL]]&lt;br /&gt;
|list3 = &lt;br /&gt;
* [[CFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group4 = [[Cafe Face Library|FFL]]&lt;br /&gt;
|list4 = &lt;br /&gt;
* [[FFL_Res＊.dat]]&lt;br /&gt;
* [[AFL_ResHigh_＊.dat]]&lt;br /&gt;
&lt;br /&gt;
|group5 = [[nn::mii]]::detail&lt;br /&gt;
|list5 = &lt;br /&gt;
* [[Shape＊.dat]]&lt;br /&gt;
* [[nn::mii::detail::ResourceTextureHeader|ResourceTextureHeader]]&lt;br /&gt;
* [[OunceTexture＊.dat]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=NXTexture%EF%BC%8A.dat&amp;diff=467</id>
		<title>NXTexture＊.dat</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=NXTexture%EF%BC%8A.dat&amp;diff=467"/>
		<updated>2025-09-24T14:36:07Z</updated>

		<summary type="html">&lt;p&gt;Jo: Jo moved page NXTexture＊.dat to Nn::mii::detail::ResourceTextureHeader&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Nn::mii::detail::ResourceTextureHeader]]&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=466</id>
		<title>Nn::mii::detail::ResourceTextureHeader</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Nn::mii::detail::ResourceTextureHeader&amp;diff=466"/>
		<updated>2025-09-24T14:36:07Z</updated>

		<summary type="html">&lt;p&gt;Jo: Jo moved page NXTexture＊.dat to Nn::mii::detail::ResourceTextureHeader&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NxTextureMidSrgb.dat, and others.&lt;br /&gt;
&lt;br /&gt;
== Struct Format (Header) ==&lt;br /&gt;
This sample is in the ImHex Pattern&amp;lt;ref&amp;gt;https://imhex.werwolv.net/&amp;lt;/ref&amp;gt; format.&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
enum AttributeType : u8 {&lt;br /&gt;
    AttributeType_Position = 0, // AttributeFormat_16_16_16_16_Float / _p0&lt;br /&gt;
    AttributeType_Normal=1,   // AttributeFormat_10_10_10_2_Snorm / _n0&lt;br /&gt;
    AttributeType_Uv=2,       // AttributeFormat_16_16_Float / _u0&lt;br /&gt;
    AttributeType_Tangent=3,  // AttributeFormat_8_8_8_8_Snorm / _t0&lt;br /&gt;
    AttributeType_Param=4,    // AttributeFormat_8_8_8_8_Unorm / _c0 (Color)&lt;br /&gt;
    AttributeType_End=5&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceMemoryLevel : u8 {&lt;br /&gt;
    ResourceMemoryLevel_1=1,&lt;br /&gt;
    ResourceMemoryLevel_Min=1,&lt;br /&gt;
    ResourceMemoryLevel_2=2,&lt;br /&gt;
    ResourceMemoryLevel_3=3,&lt;br /&gt;
    ResourceMemoryLevel_4=4,&lt;br /&gt;
    ResourceMemoryLevel_5=5,&lt;br /&gt;
    ResourceMemoryLevel_6=6,&lt;br /&gt;
    ResourceMemoryLevel_7=7,&lt;br /&gt;
    ResourceMemoryLevel_8=8,&lt;br /&gt;
    ResourceMemoryLevel_Default=8,&lt;br /&gt;
    ResourceMemoryLevel_9=9,&lt;br /&gt;
    ResourceMemoryLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceCompressLevel : u8 {&lt;br /&gt;
    ResourceCompressLevel_0=0,   // Z_NO_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Min=0,&lt;br /&gt;
    ResourceCompressLevel_1=1,   // Z_BEST_SPEED&lt;br /&gt;
    ResourceCompressLevel_2=2,&lt;br /&gt;
    ResourceCompressLevel_3=3,&lt;br /&gt;
    ResourceCompressLevel_4=4,&lt;br /&gt;
    ResourceCompressLevel_5=5,&lt;br /&gt;
    ResourceCompressLevel_6=6,&lt;br /&gt;
    ResourceCompressLevel_Default=6,&lt;br /&gt;
    ResourceCompressLevel_7=7,&lt;br /&gt;
    ResourceCompressLevel_8=8,&lt;br /&gt;
    ResourceCompressLevel_9=9,   // Z_BEST_COMPRESSION&lt;br /&gt;
    ResourceCompressLevel_Max=9&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceCommonAttribute { // Size = 0x10&lt;br /&gt;
    // Same size as FFLiResourcePartsInfo, identical up to compressLevel.&lt;br /&gt;
    u32 offset;&lt;br /&gt;
    u32 size;&lt;br /&gt;
    u32 compressedSize;&lt;br /&gt;
    u8 compressLevel; // ResourceCompressLevel&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 windowBits; // FFLiResourceWindowBits&lt;br /&gt;
    u8 memoryLevel;   // ResourceMemoryLevel / Verified but unused.&lt;br /&gt;
    // FFLiResourcePartsInfo: u8 strategy;   // FFLiResourceStrategy&lt;br /&gt;
    u8 pad[2];        // Unused padding for alignment.&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureType : u8 {&lt;br /&gt;
    ResourceTextureType_Hat=0,&lt;br /&gt;
    ResourceTextureType_Eye=1,&lt;br /&gt;
    ResourceTextureType_Eyebrow=2,&lt;br /&gt;
    ResourceTextureType_Beard=3,&lt;br /&gt;
    ResourceTextureType_Wrinkle=4,&lt;br /&gt;
    ResourceTextureType_Make=5,&lt;br /&gt;
    ResourceTextureType_Glass=6,&lt;br /&gt;
    ResourceTextureType_Mole=7,&lt;br /&gt;
    ResourceTextureType_Mouth=8,&lt;br /&gt;
    ResourceTextureType_Mustache=9,&lt;br /&gt;
    ResourceTextureType_Noseline=10,&lt;br /&gt;
    ResourceTextureType_End=11&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureAttribute { // Size = 0xc&lt;br /&gt;
    // Same size as FFLiResourceTextureFooter, not identical.&lt;br /&gt;
    u32 alignment;&lt;br /&gt;
    u16 width;&lt;br /&gt;
    u16 height;&lt;br /&gt;
    u8 format;   // ResourceTextureFormat&lt;br /&gt;
    u8 mipCount;&lt;br /&gt;
    u8 tileMode; // ResourceTileMode&lt;br /&gt;
    u8 _pad[1];  // Unused padding for alignment.&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTileMode : u8 {&lt;br /&gt;
    ResourceTileMode_Optimal=0,&lt;br /&gt;
    ResourceTileMode_Linear=1,&lt;br /&gt;
    ResourceTileMode_End=2&lt;br /&gt;
} ;&lt;br /&gt;
&lt;br /&gt;
enum ResourceTextureFormat : u8 {&lt;br /&gt;
    // Matches FFL.&lt;br /&gt;
    ResourceTextureFormat_R8_Unorm=0,&lt;br /&gt;
    ResourceTextureFormat_R8_B8_Unorm=1,&lt;br /&gt;
    ResourceTextureFormat_R8_G8_B8_A8_Unorm=2,&lt;br /&gt;
    ResourceTextureFormat_BC4_Unorm=3,&lt;br /&gt;
    ResourceTextureFormat_BC5_Unorm=4,&lt;br /&gt;
    ResourceTextureFormat_BC7_Unorm=5,&lt;br /&gt;
    ResourceTextureFormat_Astc4x4_Unorm=6,&lt;br /&gt;
    ResourceTextureFormat_End=7&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct TextureElement { // ResourceTextureHeader::Element / Size = 0x1c&lt;br /&gt;
     ResourceCommonAttribute common;&lt;br /&gt;
     ResourceTextureAttribute texture;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct ResourceTextureHeader { // Size = 0x2428&lt;br /&gt;
    u32 signature;          // 0x5254464e / &amp;quot;NFTR&amp;quot;&lt;br /&gt;
    u32 version;            // 1&lt;br /&gt;
    u32 fileSize;           // Includes size of header.&lt;br /&gt;
    u32 maxSize[11];        // ResourceTextureType_End&lt;br /&gt;
    u32 maxAlignment[11];   // Either 8 or 16.&lt;br /&gt;
    TextureElement hat[132];     // HairType_End&lt;br /&gt;
    TextureElement eye[62];      // EyeType_ResourceCount&lt;br /&gt;
    TextureElement eyebrow[24];  // EyebrowType_End&lt;br /&gt;
    TextureElement beard[2];     // BeardType_TextureCount&lt;br /&gt;
    TextureElement wrinkle[12];  // FacelineWrinkle_End&lt;br /&gt;
    TextureElement make[12];     // FacelineMake_End&lt;br /&gt;
    TextureElement glass[20];    // GlassType_End&lt;br /&gt;
    TextureElement mole[2];      // MoleType_End&lt;br /&gt;
    TextureElement mouth[37];    // MouthType_ResourceCount&lt;br /&gt;
    TextureElement mustache[6];  // MustacheType_End&lt;br /&gt;
    TextureElement noseline[18]; // NoseType_End&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ResourceTextureHeader resourcetextureheader_at_0x00 @ 0x00;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In Codebases ==&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/j0lol/vee/blob/f134e28eec22bdf8587d5abbf0f2d0f1ffc5b8a5/crates/vee_resources/src/tex.rs#L236 Vee Face Library]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;{{Resource-Navbox}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
	<entry>
		<id>https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=463</id>
		<title>Template:Resource-Navbox</title>
		<link rel="alternate" type="text/html" href="https://mii.j0.lol/index.php?title=Template:Resource-Navbox&amp;diff=463"/>
		<updated>2025-09-24T14:15:37Z</updated>

		<summary type="html">&lt;p&gt;Jo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|bodyclass  = something&lt;br /&gt;
|name       = Resource-Navbox&lt;br /&gt;
|title      = [[Mii Resources|Mii Resource Formats]]&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
&lt;br /&gt;
|group1 = [[Revolution Face Library|RFL]]&lt;br /&gt;
|list1 = &lt;br /&gt;
* [[RFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group2 = [[Nitro Face Library|NFL]]&lt;br /&gt;
|list2 = &lt;br /&gt;
* [[NFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group3 = [[Centrair Face Library|CFL]]&lt;br /&gt;
|list3 = &lt;br /&gt;
* [[CFL_Res.dat]]&lt;br /&gt;
&lt;br /&gt;
|group4 = [[Cafe Face Library|FFL]]&lt;br /&gt;
|list4 = &lt;br /&gt;
* [[FFL_Res＊.dat]]&lt;br /&gt;
* [[AFL_ResHigh_＊.dat]]&lt;br /&gt;
&lt;br /&gt;
|group5 = [[nn::mii]]&lt;br /&gt;
|list5 = &lt;br /&gt;
* [[Shape＊.dat]]&lt;br /&gt;
* [[NXTexture＊.dat]]&lt;br /&gt;
* [[OunceTexture＊.dat]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jo</name></author>
	</entry>
</feed>