<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dr.+Kylstein</id>
	<title>ModdingWiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dr.+Kylstein"/>
	<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/wiki/Special:Contributions/Dr._Kylstein"/>
	<updated>2026-05-14T02:50:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5018</id>
		<title>Commander Keen 1-3 Level format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5018"/>
		<updated>2013-11-09T09:32:16Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: /* Compressed */ mention that the rest of the page assumes de/uncompressed data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Commander Keen 1-3]] level format was widely used in early [[ID Software]] games, usually stored in the files &amp;lt;tt&amp;gt;LEVELxx.*&amp;lt;/tt&amp;gt; (Usually with 8 or 16 levels.) The level files are usually compressed with [[RLEW compression]], though earlier games omit this. The file is composed of three sections, the header, and the tile and sprite planes. &lt;br /&gt;
&lt;br /&gt;
==Compressed==&lt;br /&gt;
&lt;br /&gt;
The compressed levels start with a dword giving the size of the decompressed level in bytes (always divisible by four) followed by the standard level data in RLEW compressed form. The rest of this page assumes decompressed data and uses offsets relative to the start of Level Data.&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name||Note&lt;br /&gt;
|-&lt;br /&gt;
|0 || 4||Decompressed Size||always divisible by four&lt;br /&gt;
|-&lt;br /&gt;
|4 || ||Level Data        ||(see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
The level header is 32 bytes long in total. Most of the header is (or was) used by TED v1.5 to load the level and its associated graphics and is not used by games &amp;lt;i&amp;gt;per se&amp;lt;/i&amp;gt;. These fields can be left blank and nobody will care, since the original TED is long gone.&lt;br /&gt;
&lt;br /&gt;
The plane size is interesting, since it has to be divisible by 16 because of how some game engines work. It is how many tiles are in each plane.&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name||Note&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 2||Level Width      ||&lt;br /&gt;
|-&lt;br /&gt;
| 2|| 2||Level Height     ||&lt;br /&gt;
|-&lt;br /&gt;
| 4|| 2||Number of Planes ||always 2&lt;br /&gt;
|-&lt;br /&gt;
| 6|| 4||Blank            ||appears to always be zero&lt;br /&gt;
|-&lt;br /&gt;
|10|| 4||TED Variables    ||ignored&lt;br /&gt;
|-&lt;br /&gt;
|14|| 2||Plane Size       ||2(h * w) rounded to the next highest multiple of 16&lt;br /&gt;
|-&lt;br /&gt;
|16||16||Unknown          ||ignored&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sprite and tile planes==&lt;br /&gt;
&lt;br /&gt;
Each plane is an array of words, padded to plane size bytes with nulls. Each word is a tile, running from left to right, top to bottom. THe first plane is tiles, the second is sprites.&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name&lt;br /&gt;
|-&lt;br /&gt;
|32             ||Plane Size||Tiles&lt;br /&gt;
|-&lt;br /&gt;
|32 + Plane Size||Plane Size||Sprites&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered several times, always by the [[Commander Keen 1-3]] modding community.&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Commander Keen 1-3]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Shadow Knights]], and [[Slordax]].&lt;br /&gt;
&lt;br /&gt;
Dangerous Dave in Copyright Infringement appears to be the first game to use this format and has it uncompressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Commander Keen 1-3]]&lt;br /&gt;
[[Category:Map Files]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5017</id>
		<title>Commander Keen 1-3 Level format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5017"/>
		<updated>2013-11-09T09:28:46Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: /* Compressed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Commander Keen 1-3]] level format was widely used in early [[ID Software]] games, usually stored in the files &amp;lt;tt&amp;gt;LEVELxx.*&amp;lt;/tt&amp;gt; (Usually with 8 or 16 levels.) The level files are usually compressed with [[RLEW compression]], though earlier games omit this. The file is composed of three sections, the header, and the tile and sprite planes. &lt;br /&gt;
&lt;br /&gt;
==Compressed==&lt;br /&gt;
&lt;br /&gt;
The compressed levels start with a dword giving the size of the decompressed level in bytes (always divisible by four) followed by the standard level data in RLEW compressed form. The offsets in the following sections are given relative to the start of Level Data.&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name||Note&lt;br /&gt;
|-&lt;br /&gt;
|0 || 4||Decompressed Size||always divisible by four&lt;br /&gt;
|-&lt;br /&gt;
|4 || ||Level Data        ||(see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
The level header is 32 bytes long in total. Most of the header is (or was) used by TED v1.5 to load the level and its associated graphics and is not used by games &amp;lt;i&amp;gt;per se&amp;lt;/i&amp;gt;. These fields can be left blank and nobody will care, since the original TED is long gone.&lt;br /&gt;
&lt;br /&gt;
The plane size is interesting, since it has to be divisible by 16 because of how some game engines work. It is how many tiles are in each plane.&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name||Note&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 2||Level Width      ||&lt;br /&gt;
|-&lt;br /&gt;
| 2|| 2||Level Height     ||&lt;br /&gt;
|-&lt;br /&gt;
| 4|| 2||Number of Planes ||always 2&lt;br /&gt;
|-&lt;br /&gt;
| 6|| 4||Blank            ||appears to always be zero&lt;br /&gt;
|-&lt;br /&gt;
|10|| 4||TED Variables    ||ignored&lt;br /&gt;
|-&lt;br /&gt;
|14|| 2||Plane Size       ||2(h * w) rounded to the next highest multiple of 16&lt;br /&gt;
|-&lt;br /&gt;
|16||16||Unknown          ||ignored&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sprite and tile planes==&lt;br /&gt;
&lt;br /&gt;
Each plane is an array of words, padded to plane size bytes with nulls. Each word is a tile, running from left to right, top to bottom. THe first plane is tiles, the second is sprites.&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name&lt;br /&gt;
|-&lt;br /&gt;
|32             ||Plane Size||Tiles&lt;br /&gt;
|-&lt;br /&gt;
|32 + Plane Size||Plane Size||Sprites&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered several times, always by the [[Commander Keen 1-3]] modding community.&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Commander Keen 1-3]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Shadow Knights]], and [[Slordax]].&lt;br /&gt;
&lt;br /&gt;
Dangerous Dave in Copyright Infringement appears to be the first game to use this format and has it uncompressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Commander Keen 1-3]]&lt;br /&gt;
[[Category:Map Files]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5016</id>
		<title>Commander Keen 1-3 Level format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5016"/>
		<updated>2013-11-09T09:28:23Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: /* Compressed */ &amp;quot;below&amp;quot; was ambiguous&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Commander Keen 1-3]] level format was widely used in early [[ID Software]] games, usually stored in the files &amp;lt;tt&amp;gt;LEVELxx.*&amp;lt;/tt&amp;gt; (Usually with 8 or 16 levels.) The level files are usually compressed with [[RLEW compression]], though earlier games omit this. The file is composed of three sections, the header, and the tile and sprite planes. &lt;br /&gt;
&lt;br /&gt;
==Compressed==&lt;br /&gt;
&lt;br /&gt;
The compressed levels start with a dword giving the size of the decompressed level in bytes (always divisible by four) followed by the standard level data in RLEW compressed form. &lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name||Note&lt;br /&gt;
|-&lt;br /&gt;
|0 || 4||Decompressed Size||always divisible by four&lt;br /&gt;
|-&lt;br /&gt;
|4 || ||Level Data        ||(see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offsets in the following sections are given relative to the start of Level Data.&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
The level header is 32 bytes long in total. Most of the header is (or was) used by TED v1.5 to load the level and its associated graphics and is not used by games &amp;lt;i&amp;gt;per se&amp;lt;/i&amp;gt;. These fields can be left blank and nobody will care, since the original TED is long gone.&lt;br /&gt;
&lt;br /&gt;
The plane size is interesting, since it has to be divisible by 16 because of how some game engines work. It is how many tiles are in each plane.&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name||Note&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 2||Level Width      ||&lt;br /&gt;
|-&lt;br /&gt;
| 2|| 2||Level Height     ||&lt;br /&gt;
|-&lt;br /&gt;
| 4|| 2||Number of Planes ||always 2&lt;br /&gt;
|-&lt;br /&gt;
| 6|| 4||Blank            ||appears to always be zero&lt;br /&gt;
|-&lt;br /&gt;
|10|| 4||TED Variables    ||ignored&lt;br /&gt;
|-&lt;br /&gt;
|14|| 2||Plane Size       ||2(h * w) rounded to the next highest multiple of 16&lt;br /&gt;
|-&lt;br /&gt;
|16||16||Unknown          ||ignored&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sprite and tile planes==&lt;br /&gt;
&lt;br /&gt;
Each plane is an array of words, padded to plane size bytes with nulls. Each word is a tile, running from left to right, top to bottom. THe first plane is tiles, the second is sprites.&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name&lt;br /&gt;
|-&lt;br /&gt;
|32             ||Plane Size||Tiles&lt;br /&gt;
|-&lt;br /&gt;
|32 + Plane Size||Plane Size||Sprites&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered several times, always by the [[Commander Keen 1-3]] modding community.&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Commander Keen 1-3]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Shadow Knights]], and [[Slordax]].&lt;br /&gt;
&lt;br /&gt;
Dangerous Dave in Copyright Infringement appears to be the first game to use this format and has it uncompressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Commander Keen 1-3]]&lt;br /&gt;
[[Category:Map Files]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5015</id>
		<title>Commander Keen 1-3 Level format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5015"/>
		<updated>2013-11-09T09:26:36Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: Made role of compression clearer by restructuring, added tables, some tidying up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Commander Keen 1-3]] level format was widely used in early [[ID Software]] games, usually stored in the files &amp;lt;tt&amp;gt;LEVELxx.*&amp;lt;/tt&amp;gt; (Usually with 8 or 16 levels.) The level files are usually compressed with [[RLEW compression]], though earlier games omit this. The file is composed of three sections, the header, and the tile and sprite planes. &lt;br /&gt;
&lt;br /&gt;
==Compressed==&lt;br /&gt;
&lt;br /&gt;
The compressed levels start with a dword giving the size of the decompressed level in bytes (always divisible by four) followed by the standard level data in RLEW compressed form. The offsets below are given relative to the start of the level data.&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name||Note&lt;br /&gt;
|-&lt;br /&gt;
|0 || 4||Decompressed Size||always divisible by four&lt;br /&gt;
|-&lt;br /&gt;
|4 || ||Level Data        ||(see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
The level header is 32 bytes long in total. Most of the header is (or was) used by TED v1.5 to load the level and its associated graphics and is not used by games &amp;lt;i&amp;gt;per se&amp;lt;/i&amp;gt;. These fields can be left blank and nobody will care, since the original TED is long gone.&lt;br /&gt;
&lt;br /&gt;
The plane size is interesting, since it has to be divisible by 16 because of how some game engines work. It is how many tiles are in each plane.&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name||Note&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 2||Level Width      ||&lt;br /&gt;
|-&lt;br /&gt;
| 2|| 2||Level Height     ||&lt;br /&gt;
|-&lt;br /&gt;
| 4|| 2||Number of Planes ||always 2&lt;br /&gt;
|-&lt;br /&gt;
| 6|| 4||Blank            ||appears to always be zero&lt;br /&gt;
|-&lt;br /&gt;
|10|| 4||TED Variables    ||ignored&lt;br /&gt;
|-&lt;br /&gt;
|14|| 2||Plane Size       ||2(h * w) rounded to the next highest multiple of 16&lt;br /&gt;
|-&lt;br /&gt;
|16||16||Unknown          ||ignored&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sprite and tile planes==&lt;br /&gt;
&lt;br /&gt;
Each plane is an array of words, padded to plane size bytes with nulls. Each word is a tile, running from left to right, top to bottom. THe first plane is tiles, the second is sprites.&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!Offset||Length||Name&lt;br /&gt;
|-&lt;br /&gt;
|32             ||Plane Size||Tiles&lt;br /&gt;
|-&lt;br /&gt;
|32 + Plane Size||Plane Size||Sprites&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered several times, always by the [[Commander Keen 1-3]] modding community.&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Commander Keen 1-3]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Shadow Knights]], and [[Slordax]].&lt;br /&gt;
&lt;br /&gt;
Dangerous Dave in Copyright Infringement appears to be the first game to use this format and has it uncompressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Commander Keen 1-3]]&lt;br /&gt;
[[Category:Map Files]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5014</id>
		<title>Commander Keen 1-3 Level format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=5014"/>
		<updated>2013-11-09T08:51:28Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: /* Sprite and tile planes */ Planesize is the size in bytes, not words.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Commander Keen 1-3]] level format was widely used in early [[ID Software]] games, usually stored in the files &amp;lt;tt&amp;gt;LEVELxx.*&amp;lt;/tt&amp;gt; (Usually with 8 or 16 levels.) The level files are usually compressed with [[RLEW compression]], though earlier games omit this. The compressed level consists of a dword giving the size of the decompressed level in bytes (Always divisible by four.) and the compressed data.&lt;br /&gt;
&lt;br /&gt;
The file is composed of three sections, the header, and the tile and sprite planes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
Most of the header is (Or was.) used by TED v1.5 to load the level and its associated graphics and is not used by games &amp;lt;i&amp;gt;per se&amp;lt;/i&amp;gt;. These can be left blank and nobody will care, since the original TED is long gone.&lt;br /&gt;
&lt;br /&gt;
The plane size is interesting, since it has to be divisible by 16 because of how some game engines work. It is how many tiles are in each plane.&lt;br /&gt;
&lt;br /&gt;
 0   4    Data size   Size of the DECOMPRESSED level in bytes (May be absent.)&lt;br /&gt;
 4   2    Level width Width of level in tiles&lt;br /&gt;
 6   2    Lev height  Height of the level in tiles&lt;br /&gt;
 8   2    Numplanes   Number of planes in level (2)&lt;br /&gt;
 10  4    Blank       Blank&lt;br /&gt;
 14  4    Ted var     2 TED 1.5 varaibles (Ignored)&lt;br /&gt;
 18  2    Planesize   Level planesize; = 2(h * w) rounded to the next highest multiple of 16&lt;br /&gt;
 20 12    Unknown     More TED metadata?&lt;br /&gt;
&lt;br /&gt;
==Sprite and tile planes==&lt;br /&gt;
&lt;br /&gt;
These are identical on format and composed of words,(Hence the RLEW compression.) one for each &#039;tile&#039; with the level being read in the &#039;normal&#039; way. (Left to right, top to bottom.) Each plane is Planesize bytes long, padded with nulls. Tiles are first, then sprites.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered several times, always by the [[Commander Keen 1-3]] modding community.&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Commander Keen 1-3]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Shadow Knights]], and [[Slordax]].&lt;br /&gt;
&lt;br /&gt;
Dangerous Dave in Copyright Infringement appears to be the first game to use this format and has it uncompressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Commander Keen 1-3]]&lt;br /&gt;
[[Category:Map Files]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=4649</id>
		<title>Commander Keen 1-3 Level format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=4649"/>
		<updated>2013-06-19T06:50:52Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: Found 12 unidentified bytes between planesize and the planes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Commander Keen 1-3]] level format was widely used in early [[ID Software]] games, usually stored in the files &amp;lt;tt&amp;gt;LEVELxx.*&amp;lt;/tt&amp;gt; (Usually with 8 or 16 levels.) The level files are usually compressed with [[RLEW compression]], though earlier games omit this. The compressed level consists of a dword giving the size of the decompressed level in bytes (Always divisible by four.) and the compressed data.&lt;br /&gt;
&lt;br /&gt;
The file is composed of three sections, the header, and the tile and sprite planes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
Most of the header is (Or was.) used by TED v1.5 to load the level and its associated graphics and is not used by games &amp;lt;i&amp;gt;per se&amp;lt;/i&amp;gt;. These can be left blank and nobody will care, since the original TED is long gone.&lt;br /&gt;
&lt;br /&gt;
The plane size is interesting, since it has to be divisible by 16 because of how some game engines work. It is how many tiles are in each plane.&lt;br /&gt;
&lt;br /&gt;
 0   4    Data size   Size of the DECOMPRESSED level in bytes (May be absent.)&lt;br /&gt;
 4   2    Level width Width of level in tiles&lt;br /&gt;
 6   2    Lev height  Height of the level in tiles&lt;br /&gt;
 8   2    Numplanes   Number of planes in level (2)&lt;br /&gt;
 10  4    Blank       Blank&lt;br /&gt;
 14  4    Ted var     2 TED 1.5 varaibles (Ignored)&lt;br /&gt;
 18  2    Planesize   Level planesize; = 2(h * w) rounded to the next highest multiple of 16&lt;br /&gt;
 20 12    Unknown     More TED metadata?&lt;br /&gt;
&lt;br /&gt;
==Sprite and tile planes==&lt;br /&gt;
&lt;br /&gt;
These are identical on format and composed of words,(Hence the RLEW compression.) one for each &#039;tile&#039; with the level being read in the &#039;normal&#039; way. (Left to right, top to bottom.) Each plane is TWICE the planesize (A word is two bytes.) and padded with nulls. Tiles are first, then sprites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered several times, always by the [[Commander Keen 1-3]] modding community.&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Commander Keen 1-3]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Shadow Knights]], and [[Slordax]].&lt;br /&gt;
&lt;br /&gt;
Dangerous Dave in Copyright Infringement appears to be the first game to use this format and has it uncompressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Commander Keen 1-3]]&lt;br /&gt;
[[Category:Map Files]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=4648</id>
		<title>Commander Keen 1-3 Level format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Commander_Keen_1-3_Level_format&amp;diff=4648"/>
		<updated>2013-06-19T04:18:03Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: Width and height were in the wrong spots, as determined by a quick look into LEVEL01.CK1 with a hex editor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Commander Keen 1-3]] level format was widely used in early [[ID Software]] games, usually stored in the files &amp;lt;tt&amp;gt;LEVELxx.*&amp;lt;/tt&amp;gt; (Usually with 8 or 16 levels.) The level files are usually compressed with [[RLEW compression]], though earlier games omit this. The compressed level consists of a dword giving the size of the decompressed level in bytes (Always divisible by four.) and the compressed data.&lt;br /&gt;
&lt;br /&gt;
The file is composed of three sections, the header, and the tile and sprite planes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
Most of the header is (Or was.) used by TED v1.5 to load the level and its associated graphics and is not used by games &amp;lt;i&amp;gt;per se&amp;lt;/i&amp;gt;. These can be left blank and nobody will care, since the original TED is long gone.&lt;br /&gt;
&lt;br /&gt;
The plane size is interesting, since it has to be divisible by 16 because of how some game engines work. It is how many tiles are in each plane.&lt;br /&gt;
&lt;br /&gt;
 0   4    Data size   Size of the DECOMPRESSED level in bytes (May be absent.)&lt;br /&gt;
 4   2    Level width Width of level in tiles&lt;br /&gt;
 6   2    Lev height  Height of the level in tiles&lt;br /&gt;
 8   2    Numplanes   Number of planes in level (2)&lt;br /&gt;
 10  4    Blank       Blank&lt;br /&gt;
 14  4    Ted var     2 TED 1.5 varaibles (Ignored)&lt;br /&gt;
 18  2    Planesize   Level planesize; = 2(h * w) rounded to the next highest multiple of 16&lt;br /&gt;
&lt;br /&gt;
==Sprite and tile planes==&lt;br /&gt;
&lt;br /&gt;
These are identical on format and composed of words,(Hence the RLEW compression.) one for each &#039;tile&#039; with the level being read in the &#039;normal&#039; way. (Left to right, top to bottom.) Each plane is TWICE the planesize (A word is two bytes.) and padded with nulls. Tiles are first, then sprites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered several times, always by the [[Commander Keen 1-3]] modding community.&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Commander Keen 1-3]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Shadow Knights]], and [[Slordax]].&lt;br /&gt;
&lt;br /&gt;
Dangerous Dave in Copyright Infringement appears to be the first game to use this format and has it uncompressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Commander Keen 1-3]]&lt;br /&gt;
[[Category:Map Files]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Keen_1-3_Tileinfo_format&amp;diff=2864</id>
		<title>Keen 1-3 Tileinfo format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Keen_1-3_Tileinfo_format&amp;diff=2864"/>
		<updated>2010-06-21T03:23:56Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: The plane order was wildly innacurate. I decided to fix up the format and add more offsets while I was at it.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
[[Commander Keen 1-3]] has an internal tileinfo file that details the properties of its tileset, whether they block the player, whether they kill, etc. The location of these segments are as follows (For the decompressed executable of each episode only.):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Episode&lt;br /&gt;
! Version&lt;br /&gt;
! Offset&lt;br /&gt;
! Number of tiles&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1.1&lt;br /&gt;
| 0x131F8&lt;br /&gt;
| 611&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1.31&lt;br /&gt;
| 0x130F8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 1.1&lt;br /&gt;
| 0x17938&lt;br /&gt;
| 689&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1.31&lt;br /&gt;
| 0x17828&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 1.1&lt;br /&gt;
| 0x199F8&lt;br /&gt;
| 715&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| 1.31&lt;br /&gt;
| 0x198C8&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The file is divided into six &#039;planes&#039;; each composed of two-byte entries. Each plane covers a specific property of the tileset, such as blocking-up or general behavior. The total size of the tile file is thus (tilenum * 12) bytes. The blocks in order are:&lt;br /&gt;
&lt;br /&gt;
* Number of animation frames&lt;br /&gt;
* Behavior&lt;br /&gt;
* Top blocking&lt;br /&gt;
* Right-side blocking&lt;br /&gt;
* Bottom blocking&lt;br /&gt;
* Left-side Blocking&lt;br /&gt;
&lt;br /&gt;
=Plane functions=&lt;br /&gt;
The first plane deals with animations. The valid values here are 0, 2 or 4, defining the three length of animation used in game. (0, 2 or 4 tile sequences.) The game scans this plane and organizes tiles into &#039;animation loops&#039; To work predictably a row of 2 or 4 consecutive tiles should all have the value of 2 or 4 respectively. If this is not the case, the first tile encountered will be considered the start of the loop, and the next 1 (Or 3) tiles as part of it.&lt;br /&gt;
&lt;br /&gt;
The behavior plane is how the tile affects the player, with quite a variety of effects as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Effect&lt;br /&gt;
! Value&lt;br /&gt;
! Effect&lt;br /&gt;
|-&lt;br /&gt;
| -2&lt;br /&gt;
| Masked&lt;br /&gt;
| 14&lt;br /&gt;
| Whiskey&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| Foreground&lt;br /&gt;
| 15&lt;br /&gt;
| Raygun&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Nothing&lt;br /&gt;
| 16&lt;br /&gt;
| Pogo&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Kills &lt;br /&gt;
| 17&lt;br /&gt;
| Exit&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Door 1&lt;br /&gt;
| 18&lt;br /&gt;
| Key 1&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Door 2&lt;br /&gt;
| 19&lt;br /&gt;
| Key 2&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Door 3&lt;br /&gt;
| 20&lt;br /&gt;
| Key 3&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Door 4&lt;br /&gt;
| 21&lt;br /&gt;
| Key 4&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 500 points&lt;br /&gt;
| 22&lt;br /&gt;
| Message box pop-up&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 100 points&lt;br /&gt;
| 23&lt;br /&gt;
| Light switch&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 200 points&lt;br /&gt;
| 24&lt;br /&gt;
| Teleporter&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 1000 points&lt;br /&gt;
| 25&lt;br /&gt;
| Switch on&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| 5000 points&lt;br /&gt;
| 26&lt;br /&gt;
| Switch off&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Joystick&lt;br /&gt;
| 27&lt;br /&gt;
| Ankh (Keen 3)&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Battery&lt;br /&gt;
| 28&lt;br /&gt;
| Ammo clip (Keen 3)&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Vacuum&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The blocking planes can have values of either 0-1 (0-4 for top blocking) for each tile and control whether the player can move through that boundary. For example, the top blocking plane controls whether a tile can be stood on. A completely solid tile will thus have all its entries in these planes as 1. For the top blocking plane, the following values are valid:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
! Effect&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Fall through&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Solid&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Slippery&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ice &lt;br /&gt;
|}&lt;br /&gt;
=Notes=&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered several times, most notably for the Tileinfo program for Keen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Commander Keen 1-3]]&lt;br /&gt;
[[Category:File Formats]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=ART_Format_(Build)&amp;diff=2858</id>
		<title>ART Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=ART_Format_(Build)&amp;diff=2858"/>
		<updated>2010-06-08T18:48:48Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: /* File Names and Tile Numbers */  typo.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ART format&#039;&#039;&#039; is used by Ken Silverman&#039;s Build engine to store game textures and sprites. It contains a number of individual graphics called tiles.&lt;br /&gt;
&lt;br /&gt;
=File Names and Tile Numbers=&lt;br /&gt;
According to Ken Silverman&#039;s documentation, ART files can be named anything, as long as they end in three digits and .ART, but for most games they are named TILES###.ART. The Build engine games will load these in order starting from 000 until they can&#039;t find any more. Every tile in the game has a numerical index, and each ART file for a particular game holds a range of these. For example, TILES000.ART may hold tiles 0 to 255, and TILES001.ART would hold tiles 256-511. The range of indexes held by a particular file are indicated in the header. The tiles are normally stored sequentially (TILES000.ART holding the first set, and each higher numbered file continuing where the previous left off) with a consistent number of tiles per file, but it is up to the particular game&#039;s developers.&lt;br /&gt;
&lt;br /&gt;
=Header=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Data Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]]&lt;br /&gt;
|  artversion&lt;br /&gt;
|  version number, should be 1.&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]]&lt;br /&gt;
|  numtiles&lt;br /&gt;
|  number of tiles, unused. The number of tiles can be determined by the localtilestart and localtileend fields.&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]]&lt;br /&gt;
|  localtilestart&lt;br /&gt;
|  number of first tile in this file&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]]&lt;br /&gt;
|  localtileend&lt;br /&gt;
|  number of last tile in this file.&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT16LE]][localtileend-localtilestart + 1]&lt;br /&gt;
|  tilesizx&lt;br /&gt;
|  array of the x-dimensions of all of the tiles in the file&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT16LE]][localtileend-localtilestart + 1]&lt;br /&gt;
|  tilesizy&lt;br /&gt;
|  array of the y-dimensions of all of the tiles in the file&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]][localtileend-localtilestart + 1]&lt;br /&gt;
|  picanm&lt;br /&gt;
|  array of attributes for all the tiles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Tile Attributes=&lt;br /&gt;
Entries in the picanm array store several properties for each tile:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  bits 31-28 (4 bit unsigned integer)&lt;br /&gt;
!  bits 27-20 (8 bit signed integer)&lt;br /&gt;
!  bits 19-12 (8 bit signed integer)&lt;br /&gt;
!  bits 11 and 10 (2 bit enumeration)&lt;br /&gt;
!  bits 9-4 (6-bit unsigned integer)&lt;br /&gt;
!  bits 3-0&lt;br /&gt;
|-&lt;br /&gt;
|  Animation speed&lt;br /&gt;
|  Y-center offset&lt;br /&gt;
|  X-center offset&lt;br /&gt;
|  Animation type: 00 = no animation, 01 = oscilating animation, 10 = animate forward, 11 = animate backward&lt;br /&gt;
|  Number of frames&lt;br /&gt;
|  unused?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Pixel Data=&lt;br /&gt;
The pixels are stored as bytes, corresponding to indexes in the palette stored in PALETTE.DAT. The pixels in each tile are stored columnwise, starting from the top-left. For a 4x4 tile, the offsets for each pixel would be arranged like this:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  0&lt;br /&gt;
|  4&lt;br /&gt;
|  8&lt;br /&gt;
|  12&lt;br /&gt;
|-&lt;br /&gt;
|  1&lt;br /&gt;
|  5&lt;br /&gt;
|  9&lt;br /&gt;
|  13&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  6&lt;br /&gt;
|  10&lt;br /&gt;
|  14&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  7&lt;br /&gt;
|  11&lt;br /&gt;
|  15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Source=&lt;br /&gt;
* This information comes from BUILDINF.TXT in the [http://advsys.net/ken/buildsrc/default.htm Build source] files.&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Graphics Files]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build engine]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- All the games that use this file format --&amp;gt;&lt;br /&gt;
[[Category:Duke Nukem 3D]]&lt;br /&gt;
[[Category:Redneck Rampage]]&lt;br /&gt;
[[Category:Shadow Warrior]]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=CON_Format&amp;diff=2740</id>
		<title>CON Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=CON_Format&amp;diff=2740"/>
		<updated>2010-04-02T21:19:30Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CON format&#039;&#039;&#039; is used by [[Duke Nukem 3D]], WW2 GI, and Nam for scripting and game parameters. They are [[ASCII]] text files containing directives in a custom scripting language. The scripting language was extended by the later games, and those extensions were re-added to Duke3D by the EDuke project. EDuke has been superseded by EDuke32 which has it&#039;s [http://wiki.eduke32.com/wiki/Main_Page own wiki documenting the enhanced CON language]. The subset of commands available in the original Duke Nukem 3D are [http://wiki.eduke32.com/wiki/Category:Duke3D_1.3/1.5_commands listed here.]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=CON_Format&amp;diff=2739</id>
		<title>CON Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=CON_Format&amp;diff=2739"/>
		<updated>2010-04-02T21:19:02Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: Created page with &amp;#039;The CON format is used by Duke Nukem 3D, WW2 GI, and Nam for scripting and game parameters. They are ASCII text files containing directives in a custom scripting language…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CON format is used by [[Duke Nukem 3D]], WW2 GI, and Nam for scripting and game parameters. They are [[ASCII]] text files containing directives in a custom scripting language. The scripting language was extended by the later games, and those extensions were re-added to Duke3D by the EDuke project. EDuke has been superseded by EDuke32 which has it&#039;s [http://wiki.eduke32.com/wiki/Main_Page own wiki documenting the enhanced CON language]. The subset of commands available in the original Duke Nukem 3D are [http://wiki.eduke32.com/wiki/Category:Duke3D_1.3/1.5_commands listed here.]&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=ART_Format_(Build)&amp;diff=2738</id>
		<title>ART Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=ART_Format_(Build)&amp;diff=2738"/>
		<updated>2010-04-02T21:07:08Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ART format&#039;&#039;&#039; is used by Ken Silverman&#039;s Build engine to store game textures and sprites. It contains a number of individual graphics called tiles.&lt;br /&gt;
&lt;br /&gt;
=File Names and Tile Numbers=&lt;br /&gt;
According to Ken Silverman&#039;s documentation, ART files can be named anything, along as they end in three digits and .ART, but for most games they are named TILES###.ART. The Build engine games will load these in order starting from 000 until they can&#039;t find any more. Every tile in the game has a numerical index, and each ART file for a particular game holds a range of these. For example, TILES000.ART may hold tiles 0 to 255, and TILES001.ART would hold tiles 256-511. The range of indexes held by a particular file are indicated in the header. The tiles are normally stored sequentially (TILES000.ART holding the first set, and each higher numbered file continuing where the previous left off) with a consistent number of tiles per file, but it is up to the particular game&#039;s developers.&lt;br /&gt;
&lt;br /&gt;
=Header=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Data Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]]&lt;br /&gt;
|  artversion&lt;br /&gt;
|  version number, should be 1.&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]]&lt;br /&gt;
|  numtiles&lt;br /&gt;
|  number of tiles, unused. The number of tiles can be determined by the localtilestart and localtileend fields.&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]]&lt;br /&gt;
|  localtilestart&lt;br /&gt;
|  number of first tile in this file&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]]&lt;br /&gt;
|  localtileend&lt;br /&gt;
|  number of last tile in this file.&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT16LE]][localtileend-localtilestart + 1]&lt;br /&gt;
|  tilesizx&lt;br /&gt;
|  array of the x-dimensions of all of the tiles in the file&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT16LE]][localtileend-localtilestart + 1]&lt;br /&gt;
|  tilesizy&lt;br /&gt;
|  array of the y-dimensions of all of the tiles in the file&lt;br /&gt;
|-&lt;br /&gt;
|  [[UINT32LE]][localtileend-localtilestart + 1]&lt;br /&gt;
|  picanm&lt;br /&gt;
|  array of attributes for all the tiles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Tile Attributes=&lt;br /&gt;
Entries in the picanm array store several properties for each tile:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  bits 31-28 (4 bit unsigned integer)&lt;br /&gt;
!  bits 27-20 (8 bit signed integer)&lt;br /&gt;
!  bits 19-12 (8 bit signed integer)&lt;br /&gt;
!  bits 11 and 10 (2 bit enumeration)&lt;br /&gt;
!  bits 9-4 (6-bit unsigned integer)&lt;br /&gt;
!  bits 3-0&lt;br /&gt;
|-&lt;br /&gt;
|  Animation speed&lt;br /&gt;
|  Y-center offset&lt;br /&gt;
|  X-center offset&lt;br /&gt;
|  Animation type: 00 = no animation, 01 = oscilating animation, 10 = animate forward, 11 = animate backward&lt;br /&gt;
|  Number of frames&lt;br /&gt;
|  unused?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Pixel Data=&lt;br /&gt;
The pixels are stored as bytes, corresponding to indexes in the palette stored in PALETTE.DAT. The pixels in each tile are stored columnwise, starting from the top-left. For a 4x4 tile, the offsets for each pixel would be arranged like this:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  0&lt;br /&gt;
|  4&lt;br /&gt;
|  8&lt;br /&gt;
|  12&lt;br /&gt;
|-&lt;br /&gt;
|  1&lt;br /&gt;
|  5&lt;br /&gt;
|  9&lt;br /&gt;
|  13&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  6&lt;br /&gt;
|  10&lt;br /&gt;
|  14&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  7&lt;br /&gt;
|  11&lt;br /&gt;
|  15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Source=&lt;br /&gt;
This information comes from BUILDINF.TXT in the [http://advsys.net/ken/buildsrc/default.htm Build source] files.&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=ART_Format_(Build)&amp;diff=2737</id>
		<title>ART Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=ART_Format_(Build)&amp;diff=2737"/>
		<updated>2010-04-02T20:52:08Z</updated>

		<summary type="html">&lt;p&gt;Dr. Kylstein: Created page with &amp;#039;The &amp;#039;&amp;#039;&amp;#039;ART format&amp;#039;&amp;#039;&amp;#039; is used by Ken Silverman&amp;#039;s Build engine to store game textures and sprites. It contains a number of individual graphics called tiles.  According to Ken Silve…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;ART format&#039;&#039;&#039; is used by Ken Silverman&#039;s Build engine to store game textures and sprites. It contains a number of individual graphics called tiles.&lt;br /&gt;
&lt;br /&gt;
According to Ken Silverman&#039;s documentation, ART files can be named anything, along as they end in three digits and .ART, but for most games they are named TILES###.ART. The Build engine games will load these in order starting from 000 until they can&#039;t find anymore.&lt;br /&gt;
&lt;br /&gt;
=Header=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Data Type&lt;br /&gt;
!  Name&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  UINT32LE&lt;br /&gt;
|  artversion&lt;br /&gt;
|  version number, should be 1.&lt;br /&gt;
|-&lt;br /&gt;
|  UINT32LE&lt;br /&gt;
|  numtiles&lt;br /&gt;
|  number of tiles, unused. The number of tiles can be determined by the localtilestart and localtileend fields.&lt;br /&gt;
|-&lt;br /&gt;
|  UINT32LE&lt;br /&gt;
|  localtilestart&lt;br /&gt;
|  number of first tile in this file&lt;br /&gt;
|-&lt;br /&gt;
|  UINT32LE&lt;br /&gt;
|  localtileend&lt;br /&gt;
|  number of last tile in this file.&lt;br /&gt;
|-&lt;br /&gt;
|  UINT16LE[localtileend-localtilestart + 1]&lt;br /&gt;
|  tilesizx&lt;br /&gt;
|  array of the x-dimensions of all of the tiles in the file&lt;br /&gt;
|-&lt;br /&gt;
|  UINT16LE[localtileend-localtilestart + 1]&lt;br /&gt;
|  tilesizy&lt;br /&gt;
|  array of the y-dimensions of all of the tiles in the file&lt;br /&gt;
|-&lt;br /&gt;
|  UINT32LE[localtileend-localtilestart + 1]&lt;br /&gt;
|  picanm&lt;br /&gt;
|  array of attributes for all the tiles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Tile Attributes=&lt;br /&gt;
Entries in the picanm array store several properties for each tile:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  bits 31-28 (4 bit unsigned integer)&lt;br /&gt;
!  bits 27-20 (8 bit signed integer)&lt;br /&gt;
!  bits 19-12 (8 bit signed integer)&lt;br /&gt;
!  bits 11 and 10 (2 bit enumeration)&lt;br /&gt;
!  bits 9-4 (6-bit unsigned integer)&lt;br /&gt;
!  bits 3-0&lt;br /&gt;
|-&lt;br /&gt;
|  Animation speed&lt;br /&gt;
|  Y-center offset&lt;br /&gt;
|  X-center offset&lt;br /&gt;
|  Animation type: 00 = no animation, 01 = oscilating animation, 10 = animate forward, 11 = animate backward&lt;br /&gt;
|  Number of frames&lt;br /&gt;
|  unused?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Pixel Data=&lt;br /&gt;
The pixels are stored as bytes, corresponding to indexes in the palette stored in PALETTE.DAT. The pixels in each tile are stored columnwise, starting from the top-left. For a 4x4 tile, the offsets for each pixel would be arranged like this:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  0&lt;br /&gt;
|  4&lt;br /&gt;
|  8&lt;br /&gt;
|  12&lt;br /&gt;
|-&lt;br /&gt;
|  1&lt;br /&gt;
|  5&lt;br /&gt;
|  9&lt;br /&gt;
|  13&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|  6&lt;br /&gt;
|  10&lt;br /&gt;
|  14&lt;br /&gt;
|-&lt;br /&gt;
|  3&lt;br /&gt;
|  7&lt;br /&gt;
|  11&lt;br /&gt;
|  15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Source=&lt;br /&gt;
This information comes from BUILDINF.TXT in the [http://advsys.net/ken/buildsrc/default.htm Build source] files.&lt;/div&gt;</summary>
		<author><name>Dr. Kylstein</name></author>
	</entry>
</feed>