<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.metroid2002.com/retromodding/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cornyfisch</id>
		<title>Retro Modding Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.metroid2002.com/retromodding/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cornyfisch"/>
		<link rel="alternate" type="text/html" href="http://www.metroid2002.com/retromodding/wiki/Special:Contributions/Cornyfisch"/>
		<updated>2026-05-02T17:58:48Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>http://www.metroid2002.com/retromodding/index.php?title=Donkey_Kong_Country:_Tropical_Freeze&amp;diff=1893</id>
		<title>Donkey Kong Country: Tropical Freeze</title>
		<link rel="alternate" type="text/html" href="http://www.metroid2002.com/retromodding/index.php?title=Donkey_Kong_Country:_Tropical_Freeze&amp;diff=1893"/>
				<updated>2017-06-11T16:04:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cornyfisch: Add link to dependency group format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Donkey Kong Country: Tropical Freeze]] is the most recent Retro release, and their first game on the Wii U; along with the new console came a large overhaul of the engine, with a lot of old formats being removed, a lot of new ones introduced, and a lot of the remaining ones being overhauled completely.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Formats ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! Contents&lt;br /&gt;
|-&lt;br /&gt;
| [[ANIM (File Format)|ANIM]]&lt;br /&gt;
| Animation&lt;br /&gt;
|-&lt;br /&gt;
| [[ARC (File Format)|ARC]]&lt;br /&gt;
| Archive&lt;br /&gt;
|-&lt;br /&gt;
| [[CABH (File Format)|CABH]]&lt;br /&gt;
| Audio Bus Heirarchy&lt;br /&gt;
|-&lt;br /&gt;
| [[CAUD (File Format)|CAUD]]&lt;br /&gt;
| Audio Sound Effect&lt;br /&gt;
|-&lt;br /&gt;
| [[CHAR (File Format)|CHAR]]&lt;br /&gt;
| Character&lt;br /&gt;
|-&lt;br /&gt;
| [[CLSN (File Format)|CLSN]]&lt;br /&gt;
| Collision&lt;br /&gt;
|-&lt;br /&gt;
| [[CMDL (Tropical Freeze)|CMDL]]&lt;br /&gt;
| Model&lt;br /&gt;
|-&lt;br /&gt;
| [[CSMP (File Format)|CSMP]]&lt;br /&gt;
| Audio Sample&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLN (Tropical Freeze)|DCLN]]&lt;br /&gt;
| Dynamic Collision&lt;br /&gt;
|-&lt;br /&gt;
| [[DGRP (File Format)|DGRP]]&lt;br /&gt;
| Dependency Group&lt;br /&gt;
|-&lt;br /&gt;
| [[FSMC (File Format)|FSMC]]&lt;br /&gt;
| Finite State Machine&lt;br /&gt;
|-&lt;br /&gt;
| [[GENP (File Format)|GENP]]&lt;br /&gt;
| Generic Particle System&lt;br /&gt;
|-&lt;br /&gt;
| [[GFX (File Format)|GFX]]&lt;br /&gt;
| Flash Movie&lt;br /&gt;
|-&lt;br /&gt;
| [[GFXL (File Format)|GFXL]]&lt;br /&gt;
| Flash Texture Library&lt;br /&gt;
|-&lt;br /&gt;
| [http://en.wikipedia.org/wiki/MPEG-4_Part_14 MP4]&lt;br /&gt;
| Video&lt;br /&gt;
|-&lt;br /&gt;
| [[LDTA (File Format)|LDTA]]&lt;br /&gt;
| Loose Data&lt;br /&gt;
|-&lt;br /&gt;
| [[LPRB (File Format)|LPRB]]&lt;br /&gt;
| Light Probe&lt;br /&gt;
|-&lt;br /&gt;
| [[MSBT (File Format)|MSBT]]&lt;br /&gt;
| Message Table&lt;br /&gt;
|-&lt;br /&gt;
| [[MTRL (File Format)|MTRL]]&lt;br /&gt;
| Material Shaders&lt;br /&gt;
|-&lt;br /&gt;
| [[PAK (Tropical Freeze)|PAK]]&lt;br /&gt;
| Packages&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM (File Format)|ROOM]]&lt;br /&gt;
| Room&lt;br /&gt;
|-&lt;br /&gt;
| [[RULE (File Format)|RSTC]]&lt;br /&gt;
| Rule Set&lt;br /&gt;
|-&lt;br /&gt;
| [[SKEL (File Format)|SKEL]]&lt;br /&gt;
| Skeleton&lt;br /&gt;
|-&lt;br /&gt;
| [[CMDL (Tropical Freeze)|SMDL]]&lt;br /&gt;
| Skinned Model&lt;br /&gt;
|-&lt;br /&gt;
| [[SPWN (File Format)|SPWN]]&lt;br /&gt;
| Spawn Particle System&lt;br /&gt;
|-&lt;br /&gt;
| [[SWSH (File Format)|SWSH]]&lt;br /&gt;
| Swoosh Particle System&lt;br /&gt;
|-&lt;br /&gt;
| [[TXTR (Tropical Freeze)|TXTR]]&lt;br /&gt;
| Texture&lt;br /&gt;
|-&lt;br /&gt;
| [[UINF (File Format)|UINF]]&lt;br /&gt;
| Universe Info&lt;br /&gt;
|-&lt;br /&gt;
| [[CMDL (Tropical Freeze)|WMDL]]&lt;br /&gt;
| World Model&lt;br /&gt;
|-&lt;br /&gt;
| [[XFRM (File Format)|XFRM]]&lt;br /&gt;
| Transform Particle System&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;br /&gt;
[[Category:Donkey Kong Country: Tropical Freeze]]&lt;/div&gt;</summary>
		<author><name>Cornyfisch</name></author>	</entry>

	<entry>
		<id>http://www.metroid2002.com/retromodding/index.php?title=CHAR_(Metroid_Prime_3)&amp;diff=1194</id>
		<title>CHAR (Metroid Prime 3)</title>
		<link rel="alternate" type="text/html" href="http://www.metroid2002.com/retromodding/index.php?title=CHAR_(Metroid_Prime_3)&amp;diff=1194"/>
				<updated>2015-07-29T00:11:09Z</updated>
		
		<summary type="html">&lt;p&gt;Cornyfisch: This format is not used in DKCR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''CHAR format''' defines animated characters; it's the successor to the [[ANCS (File Format)|ANCS format]] from Prime 1 and 2, and the format is extremely similar.&lt;br /&gt;
&lt;br /&gt;
{{research|major|This format hasn't been researched/documented very well yet, but it appears to be extremely similar to ANCS.}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| char&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| char&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
| string&lt;br /&gt;
| '''Character name'''&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[CMDL (File Format)|CMDL]]&lt;br /&gt;
| '''Character model'''&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[CSKR (File Format)|CSKR]]&lt;br /&gt;
| '''Character skin'''&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| long&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[CINF (File Format)|CINF]]&lt;br /&gt;
| '''Character skeleton'''&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[SAND (File Format)|SAND]]&lt;br /&gt;
| '''Character sand'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Metroid Prime 3: Corruption]]&lt;br /&gt;
[[Category:File Formats]]&lt;/div&gt;</summary>
		<author><name>Cornyfisch</name></author>	</entry>

	<entry>
		<id>http://www.metroid2002.com/retromodding/index.php?title=CHAR_(Donkey_Kong_Country_Returns)&amp;diff=1193</id>
		<title>CHAR (Donkey Kong Country Returns)</title>
		<link rel="alternate" type="text/html" href="http://www.metroid2002.com/retromodding/index.php?title=CHAR_(Donkey_Kong_Country_Returns)&amp;diff=1193"/>
				<updated>2015-07-29T00:10:09Z</updated>
		
		<summary type="html">&lt;p&gt;Cornyfisch: Created page with &amp;quot;The '''CHAR format''' defines animated characters. It's the successor to the CHAR format from Prime 3.  {{research|major|This format has not been resear...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''CHAR format''' defines animated characters. It's the successor to the [[CHAR (File Format)|CHAR format]] from Prime 3.&lt;br /&gt;
&lt;br /&gt;
{{research|major|This format has not been researched/documented very well yet, but it seems different from the Prime 3 format.}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
The header is used to point to other important files defining an animated character. Unsigned 64bit IDs name these files.&lt;br /&gt;
It is possible that IDs are set to 0xFFFFFFFFFFFFFFFF, indicating a ''null'' value.&lt;br /&gt;
&lt;br /&gt;
The strings are null-terminated ascii-character arrays.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| u32&lt;br /&gt;
| {{unknown|'''Unknown'''; always 0x59BE000E - probably magic value}}&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| -&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
| string&lt;br /&gt;
| '''Character name'''&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| ID&lt;br /&gt;
| '''Character skeleton''' See [[CINF (File Format)|CINF]]&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| ID&lt;br /&gt;
| {{unknown|'''Unknown''' - These IDs point to [[CPRM (Donkey Kong Country Returns)|CPRM]] files}}&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| u32&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| string&lt;br /&gt;
| {{unknown|This is always &amp;quot;SkinnedModel&amp;quot;}}&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| ID&lt;br /&gt;
| '''Character model''' See [[CMDL (Donkey Kong Country Returns)]]&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| ID&lt;br /&gt;
| '''Character skin''' See [[CSKR (File Format)|CSKR]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Padding? ===&lt;br /&gt;
&lt;br /&gt;
24 zero-bytes.&lt;br /&gt;
&lt;br /&gt;
=== Chunks ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| u32&lt;br /&gt;
| '''Chunk Count''' (CC)&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
| Chunk[CC]&lt;br /&gt;
| '''Chunks'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Chunk ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
| string&lt;br /&gt;
| '''Chunk Name'''&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| ID&lt;br /&gt;
| '''File ID''' Often [[ANIM (File Format)|ANIM]] files&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| char[4]&lt;br /&gt;
| '''File Type''' Either &amp;quot;ANIM&amp;quot; or something else&lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| -&lt;br /&gt;
| {{unknown|'''Unknown'''}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Donkey Kong Country Returns]]&lt;br /&gt;
[[Category:File Formats]]&lt;/div&gt;</summary>
		<author><name>Cornyfisch</name></author>	</entry>

	<entry>
		<id>http://www.metroid2002.com/retromodding/index.php?title=CMDL_(Donkey_Kong_Country_Returns)&amp;diff=1155</id>
		<title>CMDL (Donkey Kong Country Returns)</title>
		<link rel="alternate" type="text/html" href="http://www.metroid2002.com/retromodding/index.php?title=CMDL_(Donkey_Kong_Country_Returns)&amp;diff=1155"/>
				<updated>2015-06-14T11:55:34Z</updated>
		
		<summary type="html">&lt;p&gt;Cornyfisch: Fixed mantissa byte size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See [[CMDL (File Format)]] for the other revisions of this format.''&lt;br /&gt;
&lt;br /&gt;
The '''CMDL format''' is DKCR's model format. It's similar to the CMDL format found in the Metroid Prime trilogy, but with a lot of additions and changes, and some layout changes.&lt;br /&gt;
&lt;br /&gt;
{{research|moderate|Where to begin? Materials need a lot of research (they're very similar if not the same as Metroid Prime 3). A lot of the visibility group data is unknown. The submesh headers contain a lot of unknowns, and the possible vertex format settings are unknown. Geometry should be split off into a separate article if it's confirmed that it's the same format that's used in MREA (which is fairly likely). Materials should also be split off once more is known about them.}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
Like the previous CMDL formats, DKCR CMDL files are split up into a number of 32-byte aligned ''sections''. Every section both starts and ends on a 32-byte boundary. These are used to separate different parts of the file; different types of sections typically indicate different sets of data. The header declares the section count and the size of each one; using these is the only way to navigate the file.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''; always 0x9381000A - likely either magic value or 16-bit magic/version}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| '''Flags'''; see below&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| float[6]&lt;br /&gt;
| 0x18&lt;br /&gt;
| '''Model Bounding Box'''&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| '''Section count''' (SC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x24&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| '''Material set count'''&lt;br /&gt;
|-&lt;br /&gt;
| 0x28&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| '''Visibility group data'''; present if flag 0x10 is set. See below for structure.&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
| u32[]&lt;br /&gt;
| 4 &amp;amp;times; SC&lt;br /&gt;
| '''Section sizes'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 {{unknown|End of header; pad to multiple of 32 before first section starts}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Flags ====&lt;br /&gt;
&lt;br /&gt;
The following flags are possible:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Hex&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0x1&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 0x2&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 0x4&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 0x8&lt;br /&gt;
| {{unknown|Unknown}}&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 0x10&lt;br /&gt;
| Enable visibility groups&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| 0x20&lt;br /&gt;
| Store vertex positions as shorts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Visibility Groups ====&lt;br /&gt;
&lt;br /&gt;
Visibility group data is present in the header if bit 0x10 is set, after the material set count and before the section sizes. Visibility groups are used to toggle the visibility of certain meshes on or off during animations; for instance, Diddy's jetpack.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| '''Visibility Group count'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following structure repeats for each group:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| '''Name length'''&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| string&lt;br /&gt;
| -&lt;br /&gt;
| '''Visibility Group name'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Finally, it ends with this before the sizes begin:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''}}&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Materials ===&lt;br /&gt;
&lt;br /&gt;
There's not much known about the material format currently; DKCR seems to use the same material format as Metroid Prime 3. The main difference in DKCR compared to Prime 3 is that in Prime 3, each material set would get its own section. In DKCR, every material set is in the same section. Each material set begins with a material count, and each material begins with its own size. The main thing that's needed to read geometry is the vertex attribute flags, which are located at 0xC in the material structure (not counting the size).&lt;br /&gt;
&lt;br /&gt;
=== Geometry ===&lt;br /&gt;
&lt;br /&gt;
==== Vertex Coordinates ====&lt;br /&gt;
&lt;br /&gt;
Vertex coords can be stored as either floats or signed shorts, depending whether flag 0x20 is set in the header. If they're shorts, then they need to be divided by 0x2000 to get the corresponding float value. Since they're signed numbers, that means that 0 to 0x7FFF correspond to the range 0.0-4.0, and 0x8000 to 0xFFFF correspond to the range -4.0-0.0.&lt;br /&gt;
&lt;br /&gt;
==== Normals ====&lt;br /&gt;
&lt;br /&gt;
Vertex normals are usually stored as shorts. To get the corresponding float value, read as a signed short and divide by 0x4000.&lt;br /&gt;
&lt;br /&gt;
==== Vertex Color ====&lt;br /&gt;
&lt;br /&gt;
Normally unused, so this section is typically empty and zeroed out.&lt;br /&gt;
&lt;br /&gt;
==== Float UV Coordinates ====&lt;br /&gt;
&lt;br /&gt;
These are stored as a sequence of two floats.&lt;br /&gt;
&lt;br /&gt;
==== Short UV Coordinates ====&lt;br /&gt;
&lt;br /&gt;
Like the short vertex coordinates, these are stored as signed shorts that should be divided by 0x2000 to get the corresponding float value. The short UVs section has received a fairly significant increase in usage in DKCR compared to the Prime series; in the Prime games, they were generally only used for lightmaps, whereas in DKCR they're often used by pretty much anything.&lt;br /&gt;
&lt;br /&gt;
==== Submesh Definitions ====&lt;br /&gt;
&lt;br /&gt;
This section is very small and simple; it simply declares a submesh count and then lists the offsets to the end of each submesh. Following this section, there'll be one additional section per submesh.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| '''Submesh count''' (SC)&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| u32[]&lt;br /&gt;
| 4 &amp;amp;times; SC&lt;br /&gt;
| '''Submesh offsets''' (relative to the start of the first submesh)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 {{unknown|Submesh sections begin}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Submesh ====&lt;br /&gt;
&lt;br /&gt;
There will be one of these sections per submesh. Each submesh starts with a small 0x20-byte header; after that, the primitive data begins.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Type&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| float[3]&lt;br /&gt;
| 0xC&lt;br /&gt;
| '''Position''' (or pivot location); unknown purpose&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| u16&lt;br /&gt;
| 2&lt;br /&gt;
| '''Mantissa'''  - always 0x8000&lt;br /&gt;
|-&lt;br /&gt;
| 0xE&lt;br /&gt;
| u16&lt;br /&gt;
| 2&lt;br /&gt;
| '''Primitive table size''' (''this value may not be reliable'')&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''; always 0?}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| u32&lt;br /&gt;
| 4&lt;br /&gt;
| {{unknown|'''Unknown'''; always 0?}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x18&lt;br /&gt;
| u16&lt;br /&gt;
| 2&lt;br /&gt;
| {{unknown|'''Unknown'''; value varies, but is sometimes 0xFFFF}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A&lt;br /&gt;
| u16&lt;br /&gt;
| 2&lt;br /&gt;
| '''Material ID'''&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C&lt;br /&gt;
| u8&lt;br /&gt;
| 1&lt;br /&gt;
| {{unknown|'''Unknown'''; always 0xFF?}}&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D&lt;br /&gt;
| u8&lt;br /&gt;
| 1&lt;br /&gt;
| '''Visibility Group index'''&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E&lt;br /&gt;
| u16&lt;br /&gt;
| 2&lt;br /&gt;
| '''UV array flag'''; 0 indicates this submesh uses float UVs, 1 indicates it uses short UVs&lt;br /&gt;
|-&lt;br /&gt;
| 0x20&lt;br /&gt;
| colspan=3 {{unknown|End of header; primitive data starts}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The primitive data is a standard GX display list. Each primitive begins with a byte that contains the primitive type in the upper 5 bits, and the vertex format setting in the lower 3. After that is a 16-bit vertex count, followed by a series of 16-bit vertex attribute indices.&lt;br /&gt;
&lt;br /&gt;
You'll need to check some settings on the material to read the primitive data properly; the material determines which vertex attributes are present.&lt;br /&gt;
&lt;br /&gt;
There is no primitive count value; you'll need to continue reading data until you hit the end of the primitive table. There are a couple values you can use for reference; either the submesh's section size, or the submesh's end offset. It's not recommended to use the primitive table size value because that value has been shown to be inaccurate in some cases in the Prime series and this may be the case in DKCR as well.&lt;br /&gt;
&lt;br /&gt;
There are 7 primitive types supported by GX, indicated in the upper 5 bits of the flag value. Note that the game only ever actually uses triangles, triangle strips, and triangle fans; however, all of these primitives are supported by GX and are therefore supported by the game, and so they could be used in custom model files.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Primitive&lt;br /&gt;
|-&lt;br /&gt;
| 0x80&lt;br /&gt;
| Quads&lt;br /&gt;
|-&lt;br /&gt;
| 0x90&lt;br /&gt;
| Triangles&lt;br /&gt;
|-&lt;br /&gt;
| 0x98&lt;br /&gt;
| Triangle strip&lt;br /&gt;
|-&lt;br /&gt;
| 0xA0&lt;br /&gt;
| Triangle fan&lt;br /&gt;
|-&lt;br /&gt;
| 0xA8&lt;br /&gt;
| Lines&lt;br /&gt;
|-&lt;br /&gt;
| 0xB0&lt;br /&gt;
| Line strip&lt;br /&gt;
|-&lt;br /&gt;
| 0xB8&lt;br /&gt;
| Points&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Donkey Kong Country Returns]]&lt;/div&gt;</summary>
		<author><name>Cornyfisch</name></author>	</entry>

	</feed>