<?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=Parlortricks</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=Parlortricks"/>
	<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/wiki/Special:Contributions/Parlortricks"/>
	<updated>2026-05-15T03:14:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Ion_Maiden/Fury&amp;diff=10677</id>
		<title>Ion Maiden/Fury</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Ion_Maiden/Fury&amp;diff=10677"/>
		<updated>2022-08-09T23:25:09Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Fate_Demo.jpg&amp;diff=10676</id>
		<title>File:Fate Demo.jpg</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Fate_Demo.jpg&amp;diff=10676"/>
		<updated>2022-08-09T23:20:02Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Fate_Demo&amp;diff=10675</id>
		<title>Fate Demo</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Fate_Demo&amp;diff=10675"/>
		<updated>2022-08-09T23:18:30Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Extreme_Paintbrawl.png&amp;diff=10674</id>
		<title>File:Extreme Paintbrawl.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Extreme_Paintbrawl.png&amp;diff=10674"/>
		<updated>2022-08-09T23:17:51Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Extreme_Paintbrawl&amp;diff=10673</id>
		<title>Extreme Paintbrawl</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Extreme_Paintbrawl&amp;diff=10673"/>
		<updated>2022-08-09T23:17:33Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Ion_Maiden/Fury&amp;diff=10663</id>
		<title>Ion Maiden/Fury</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Ion_Maiden/Fury&amp;diff=10663"/>
		<updated>2022-08-09T23:14:04Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: Created page with &amp;quot;Category:3D Category:First-Person Shooter Category:Build engine&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Fate_Demo&amp;diff=10662</id>
		<title>Fate Demo</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Fate_Demo&amp;diff=10662"/>
		<updated>2022-08-09T23:14:00Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: Created page with &amp;quot;Category:3D Category:First-Person Shooter Category:Build engine&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Extreme_Paintbrawl&amp;diff=10661</id>
		<title>Extreme Paintbrawl</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Extreme_Paintbrawl&amp;diff=10661"/>
		<updated>2022-08-09T23:13:56Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: Created page with &amp;quot;Category:3D Category:First-Person Shooter Category:Build engine&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10655</id>
		<title>MAP Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10655"/>
		<updated>2022-08-09T23:10:24Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 3D sector-based&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Blood}}&lt;br /&gt;
   {{Game|Build Engine 1994}}&lt;br /&gt;
   {{Game|Duke Nukem 3D}}&lt;br /&gt;
   {{Game|Extreme Paintbrawl}}&lt;br /&gt;
   {{Game|Fate Demo}}&lt;br /&gt;
   {{Game|Ion Maiden/Fury}}&lt;br /&gt;
   {{Game|Lame Duke}}&lt;br /&gt;
   {{Game|Legend of Seven Paladins 3D}}&lt;br /&gt;
   {{Game|Liquidator}}&lt;br /&gt;
   {{Game|NAM}}&lt;br /&gt;
   {{Game|Powerslave}}&lt;br /&gt;
   {{Game|Shadow Warrior}}&lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
   {{Game|Redneck Deer Huntin}}&lt;br /&gt;
   {{Game|Redneck Rampage}}&lt;br /&gt;
   {{Game|Redneck Rides Again}}&lt;br /&gt;
   {{Game|William Shatner&#039;s TekWar}}&lt;br /&gt;
   {{Game|Witchaven}}&lt;br /&gt;
   {{Game|Witchaven II}}&lt;br /&gt;
   {{Game|WWII GI}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;MAP Format&#039;&#039;&#039; is used by [[:Category:Build engine|BUILD]] games for storing game levels.  It is somewhat similar in content (though not structure) to the [[Doom]] level format, as both are sector-based.  Ken Silverman has written programs to convert Doom maps into BUILD maps.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
=== Version 9 ===&lt;br /&gt;
TROR is present in map&lt;br /&gt;
&lt;br /&gt;
=== Version 8 ===&lt;br /&gt;
Limits increased&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Limit !! value&lt;br /&gt;
|-&lt;br /&gt;
| MAXSECTORS || 4096&lt;br /&gt;
|-&lt;br /&gt;
| MAXWALLS || 16384&lt;br /&gt;
|-&lt;br /&gt;
| MAXSPRITES || 16384&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 7 ===&lt;br /&gt;
This is the main map version for commercially released games&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Limit !! value&lt;br /&gt;
|-&lt;br /&gt;
| MAXSECTORS || 1024&lt;br /&gt;
|-&lt;br /&gt;
| MAXWALLS || 8192&lt;br /&gt;
|-&lt;br /&gt;
| MAXSPRITES || 4096&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || mapversion || File format version number (latest in released games is 7, source ports use 8 and 9)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posx || Player start point, X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posy || Player start point, Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posz || Player start point, Z coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Player starting angle&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cursectnum || Sector number containing the start point&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsectors || Number of sectors in the map&lt;br /&gt;
|-&lt;br /&gt;
| SECTOR[numsectors] || sector || Information about each sector&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numwalls || Number of walls in the map&lt;br /&gt;
|-&lt;br /&gt;
| WALL[numwalls] || wall || Information about each wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsprites || Number of sprites in the map&lt;br /&gt;
|-&lt;br /&gt;
| SPRITE[numsprites] || sprite || Information about each sprite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SECTOR&amp;lt;/tt&amp;gt; is defined as the following 40-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bits 7-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || Padding byte&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 1024 sectors in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;WALL&amp;lt;/tt&amp;gt; is defined as the following 32-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 8192 walls in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SPRITE&amp;lt;/tt&amp;gt; is defined as the following 44-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || &lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 4096 sprites in a map.&lt;br /&gt;
&lt;br /&gt;
The significance of the lotag, hitag and extra variables is decided by each particular game and can sometimes be discerned from the editing documents for the game in question, if available.  lotag and hitag are frequently used to set up trigger actions, for example a lift moving in response to a switch being thrown, but may have other uses as well (the Witchaven games, for instance, use the hitag on monster sprites internally to store the monster&#039;s hit point value, overwriting anything set there during map creation.)&lt;br /&gt;
&lt;br /&gt;
=== Version 6 ===&lt;br /&gt;
&lt;br /&gt;
Version 6 had differently ordered variables, no filler variables, smaller bit flag variables for floors and ceilings, lower precision for slopes and no reverse translucence bit flag.  It appears in [[Witchaven]] and [[William Shatner&#039;s TekWar]]. {{TODO|(Possibly also Powerslave/Exhumed, confirm.)}}&lt;br /&gt;
&lt;br /&gt;
The header variables are arranged just like in version 7, but version number will be 6.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sectors&#039;&#039;&#039;:&lt;br /&gt;
There is no &amp;quot;filler&amp;quot; value, floorstat/ceilingstat are 8-bit values, and the order of variables is different.&lt;br /&gt;
&lt;br /&gt;
When converting with CONVMAP7, the program will set ceilingheinum or floorheinum to 0 if bit 1 of the corresponding ceilingstat or floorstat of a sector is 0.  Otherwise ceilingheinum/floorheinum will be adjusted for higher precision.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bit 7: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Walls&#039;&#039;&#039;:&lt;br /&gt;
The ordering of the variables differs slightly.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 9-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sprites&#039;&#039;&#039;: The order of the variables differs and there is no &amp;quot;filler&amp;quot; value.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bits 9-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 5 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 4 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 3 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 0 ===&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* All angles are between 0..2047 inclusive.  0 is &amp;quot;north&amp;quot;, parallel to the Y-axis, moving away from the X-axis.  512 is &amp;quot;east&amp;quot;, parallel to the X-axis moving away from the Y-axis.&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
&lt;br /&gt;
* This information comes from &amp;lt;tt&amp;gt;[https://github.com/jonof/jfbuild/blob/master/doc/buildinf.txt BUILDINF.TXT]&amp;lt;/tt&amp;gt;, BUILD2.TXT and the source code to CONVMAP7 in the [http://advsys.net/ken/buildsrc/default.htm Build source] files, written by Ken Silverman.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10652</id>
		<title>Shaw&#039;s Nightmare Archive Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10652"/>
		<updated>2022-08-09T23:09:56Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = less than 4,294,967,296&lt;br /&gt;
 | FAT = End&lt;br /&gt;
 | Names = Y&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = N&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Shaws Nightmare Archive Format&#039;&#039;&#039; stores the archive headers first, file data next, and file index last.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
=== Archive Header ===&lt;br /&gt;
&lt;br /&gt;
If the header is not &amp;quot;&#039;&#039;&#039;DAT\x1a&#039;&#039;&#039;&amp;quot;, it is&#039;nt a valid archive.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[4] || 4 || magic || Each archive starts with the magic/signature &amp;quot;DAT\x1a&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| uint16 || 2 || numitems|| How many files in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_offset|| Offset for the file index in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_size|| size of the index in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;14 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== File Header ===&lt;br /&gt;
&lt;br /&gt;
File data is stored at the top of the archive after the header and before the file index.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[13] || 13 || name|| Filenames are right padded with 0x0 to 13 bytes&lt;br /&gt;
|-&lt;br /&gt;
| bytes[3] || 3 || padding || 3 bytes of padding&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || size|| Size of file&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || offset|| Offset for the file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;24 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/sne SNE]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/snp SNP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = No&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D&amp;diff=10651</id>
		<title>Legend of Seven Paladins 3D</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D&amp;diff=10651"/>
		<updated>2022-08-09T23:07:55Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Legend of Seven Paladins 3D]] is a first-person shooter and it&#039;s the first commercially released game that uses the [[:Category:Build engine|Build engine]].&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/lotsp.htm#extractor Lotspe]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/lotspe LOTSPE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/lotspp LOTSPP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = no&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 75m.exe&amp;lt;br /&amp;gt;75t.exe&amp;lt;br /&amp;gt;laart000.dat&amp;lt;br /&amp;gt;ltart000.dat&lt;br /&gt;
 | Format = [[EXE format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Executables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = l0art000.dat&amp;lt;br /&amp;gt;l1art000.dat&lt;br /&gt;
 | Format = [[ART Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Level textures and sprites&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = lcart000.dat&amp;lt;br /&amp;gt;lfart000.dat&amp;lt;br /&amp;gt;lgart000.dat&lt;br /&gt;
 | Format = [[FLIC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Animations&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = lmart000.dat&amp;lt;br /&amp;gt;lvart000.dat&lt;br /&gt;
 | Format = [[Legend of Seven Paladins 3D Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = setup.dat&lt;br /&gt;
 | Format = [[Legend of Seven Paladins 3D Settings Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Game settings&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mid&lt;br /&gt;
 | Format = [[MID Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.voc&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D_Archive_Format&amp;diff=10650</id>
		<title>Legend of Seven Paladins 3D Archive Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D_Archive_Format&amp;diff=10650"/>
		<updated>2022-08-09T23:06:51Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = less than 4,294,967,296&lt;br /&gt;
 | FAT = Beginning&lt;br /&gt;
 | Names = N&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = Y&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Legend of Seven Paladins 3D}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Legend of Seven Paladins 3D Archive Format&#039;&#039;&#039; is one of the more efficient archives in that it only stores file offsets in the headers, and the file sizes must be calculated from these. It doesn&#039;t store filenames.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The file starts with a [[UINT32LE]] representing the offset of the first file in the archive. Then comes a [[UINT32LE]] representing the offset of the second file, etc. Until a [[UINT32LE]] comes along who&#039;s value is the same as the file size of the archive.&lt;br /&gt;
Between these offsets and the actual data of the first file, there is room for hidden data.&lt;br /&gt;
&lt;br /&gt;
The size of a file must be calculated from the offset of the next file minus its own offset.&lt;br /&gt;
&lt;br /&gt;
This archive doesn&#039;t store filenames, so it&#039;s impossible to determine the file formats of the archived files by looking at the filename extension. Luckily, all file formats of the files in the officially released archives can be determined by looking at the first byte of each file:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! First byte !! File format&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&amp;lt;br /&amp;gt; 0x1f&lt;br /&gt;
| 6-bit [[VGA Palette]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| [[Build-engine Map Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0a&lt;br /&gt;
| [[PCX Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x43&lt;br /&gt;
| [[VOC Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4d&lt;br /&gt;
| [[MID Format]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/lotsp.htm#extractor Lotspe]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/lotspe LOTSPE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/lotspp LOTSPP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = no&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Frenkel|Frenkel]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10649</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10649"/>
		<updated>2022-08-09T23:05:48Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/snp SNP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Write&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.sng&lt;br /&gt;
 | Format = [[SNG Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio - Song?&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcs&lt;br /&gt;
 | Format = [[PCS Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[RAW Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10648</id>
		<title>Shaw&#039;s Nightmare 1</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10648"/>
		<updated>2022-08-09T23:05:19Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 1]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/snp SNP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Write&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.sng&lt;br /&gt;
 | Format = [[SNG Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio - Song?&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcs&lt;br /&gt;
 | Format = [[PCS Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[RAW Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10647</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10647"/>
		<updated>2022-08-09T23:04:06Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/snp SNP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Write&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.sng&lt;br /&gt;
 | Format = [[SNG Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio - Song?&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcs&lt;br /&gt;
 | Format = [[PCS Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[RAW Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10646</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10646"/>
		<updated>2022-08-09T22:58:17Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.sng&lt;br /&gt;
 | Format = [[SNG Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio - Song?&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcs&lt;br /&gt;
 | Format = [[PCS Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[RAW Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10645</id>
		<title>Shaw&#039;s Nightmare 1</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10645"/>
		<updated>2022-08-09T22:57:57Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 1]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.sng&lt;br /&gt;
 | Format = [[SNG Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio - Song?&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcs&lt;br /&gt;
 | Format = [[PCS Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[RAW Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = Audio&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10644</id>
		<title>Shaw&#039;s Nightmare 1</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10644"/>
		<updated>2022-08-09T22:57:23Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 1]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.sng&lt;br /&gt;
 | Format = [[SNG Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcs&lt;br /&gt;
 | Format = [[PCS Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[RAW Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10643</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10643"/>
		<updated>2022-08-09T22:56:58Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.sng&lt;br /&gt;
 | Format = [[SNG Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcs&lt;br /&gt;
 | Format = [[PCS Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[RAW Format]]&lt;br /&gt;
 | KnownFormat = no&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10642</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10642"/>
		<updated>2022-08-09T22:54:59Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10641</id>
		<title>Shaw&#039;s Nightmare 1</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10641"/>
		<updated>2022-08-09T22:54:37Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 1]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&amp;lt;br /&amp;gt;sounds.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10640</id>
		<title>Shaw&#039;s Nightmare Archive Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10640"/>
		<updated>2022-08-09T13:48:47Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = less than 4,294,967,296&lt;br /&gt;
 | FAT = End&lt;br /&gt;
 | Names = Y&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = N&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Shaws Nightmare Archive Format&#039;&#039;&#039; stores the archive headers first, file data next, and file index last.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
=== Archive Header ===&lt;br /&gt;
&lt;br /&gt;
If the header is not &amp;quot;&#039;&#039;&#039;DAT\x1a&#039;&#039;&#039;&amp;quot;, it is&#039;nt a valid archive.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[4] || 4 || magic || Each archive starts with the magic/signature &amp;quot;DAT\x1a&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| uint16 || 2 || numitems|| How many files in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_offset|| Offset for the file index in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_size|| size of the index in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;14 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== File Header ===&lt;br /&gt;
&lt;br /&gt;
File data is stored at the top of the archive after the header and before the file index.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[13] || 13 || name|| Filenames are right padded with 0x0 to 13 bytes&lt;br /&gt;
|-&lt;br /&gt;
| bytes[3] || 3 || padding || 3 bytes of padding&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || size|| Size of file&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || offset|| Offset for the file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;24 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/sne SNE]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/snp SNP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = No&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10639</id>
		<title>Shaw&#039;s Nightmare Archive Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10639"/>
		<updated>2022-08-09T13:46:33Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: /* File Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = less than 4,294,967,296&lt;br /&gt;
 | FAT = End&lt;br /&gt;
 | Names = N&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = N&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Shaws Nightmare Archive Format&#039;&#039;&#039; stores the archive headers first, file data next, and file index last.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
=== Archive Header ===&lt;br /&gt;
&lt;br /&gt;
If the header is not &amp;quot;&#039;&#039;&#039;DAT\x1a&#039;&#039;&#039;&amp;quot;, it is&#039;nt a valid archive.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[4] || 4 || magic || Each archive starts with the magic/signature &amp;quot;DAT\x1a&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| uint16 || 2 || numitems|| How many files in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_offset|| Offset for the file index in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_size|| size of the index in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;14 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== File Header ===&lt;br /&gt;
&lt;br /&gt;
File data is stored at the top of the archive after the header and before the file index.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[13] || 13 || name|| Filenames are right padded with 0x0 to 13 bytes&lt;br /&gt;
|-&lt;br /&gt;
| bytes[3] || 3 || padding || 3 bytes of padding&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || size|| Size of file&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || offset|| Offset for the file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;24 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/sne SNE]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/snp SNP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = No&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10638</id>
		<title>Shaw&#039;s Nightmare Archive Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10638"/>
		<updated>2022-08-09T13:44:59Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: /* File Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = less than 4,294,967,296&lt;br /&gt;
 | FAT = End&lt;br /&gt;
 | Names = N&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = N&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Shaws Nightmare Archive Format&#039;&#039;&#039; stores the archive headers first, file data next, and file index last.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
=== Archive Header ===&lt;br /&gt;
&lt;br /&gt;
If the header is not &amp;quot;&#039;&#039;&#039;DAT\x1a&#039;&#039;&#039;&amp;quot;, it is&#039;nt a valid archive.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[4] || 4 || magic || Each archive starts with the magic/signature &amp;quot;DAT\x1a&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| uint16 || 2 || numitems|| How many files in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_offset|| Offset for the file index in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_size|| size of the index in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;14 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== File Header ===&lt;br /&gt;
&lt;br /&gt;
File data is stored at the top of the archive after the header and before the file index.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[13] || 13 || name|| Each archive starts with the magic/signature &amp;quot;DAT\x1a&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| bytes[3] || 3 || padding || 3 bytes of padding&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || size|| Size of file&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || offset|| Offset for the file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;24 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/sne SNE]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/snp SNP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = No&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10637</id>
		<title>Shaw&#039;s Nightmare Archive Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_Archive_Format&amp;diff=10637"/>
		<updated>2022-08-09T05:24:05Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: Created page with &amp;quot;{{Archive Infobox  | MaxFiles = less than 4,294,967,296  | FAT = End  | Names = N  | Metadata = None  | Subdirectories = N  | Compressed = N  | Encrypted = N  | Hidden = N  |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = less than 4,294,967,296&lt;br /&gt;
 | FAT = End&lt;br /&gt;
 | Names = N&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = N&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Shaws Nightmare Archive Format&#039;&#039;&#039; stores the archive headers first, file data next, and file index last.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
&lt;br /&gt;
=== Archive Header ===&lt;br /&gt;
&lt;br /&gt;
If the header is not &amp;quot;&#039;&#039;&#039;DAT\x1a&#039;&#039;&#039;&amp;quot;, it is&#039;nt a valid archive.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[4] || 4 || magic || Each archive starts with the magic/signature &amp;quot;DAT\x1a&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| uint16 || 2 || numitems|| How many files in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_offset|| Offset for the file index in the archive&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || index_size|| size of the index in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;14 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== File Header ===&lt;br /&gt;
&lt;br /&gt;
File data is stored at the top of the archive after the header and before the file index.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Bytes !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| char[16] || 16 || name|| Each archive starts with the magic/signature &amp;quot;DAT\x1a&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || size|| Size of file&lt;br /&gt;
|-&lt;br /&gt;
| uint32 || 4 || offset|| Offset for the file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Total size of header is &#039;&#039;&#039;24 bytes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/sne SNE]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://codeberg.org/parlortricks/snp SNP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = No&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://codeberg.org/parlortricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10636</id>
		<title>Shaw&#039;s Nightmare 1</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10636"/>
		<updated>2022-08-04T23:22:35Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 1]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10635</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10635"/>
		<updated>2022-08-04T23:22:23Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.qaf&lt;br /&gt;
 | Format = [[QAF Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.seq&lt;br /&gt;
 | Format = [[SEQ Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = *unsure*&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10634</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10634"/>
		<updated>2022-08-04T04:55:26Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mid&lt;br /&gt;
 | Format = [[MID Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.voc&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10633</id>
		<title>Shaw&#039;s Nightmare 1</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10633"/>
		<updated>2022-08-04T04:54:45Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 1]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/sne SNE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sn0.dat&amp;lt;br /&amp;gt;sn.dat&amp;lt;br /&amp;gt;sn2.dat&lt;br /&gt;
 | Format = [[Shaws Nightmare Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mid&lt;br /&gt;
 | Format = [[MID Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.voc&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Shaw%27s_Nightmare_2.png&amp;diff=10632</id>
		<title>File:Shaw&#039;s Nightmare 2.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Shaw%27s_Nightmare_2.png&amp;diff=10632"/>
		<updated>2022-08-03T05:12:13Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Shaw%27s_Nightmare_1.png&amp;diff=10631</id>
		<title>File:Shaw&#039;s Nightmare 1.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Shaw%27s_Nightmare_1.png&amp;diff=10631"/>
		<updated>2022-08-03T05:09:54Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10630</id>
		<title>MAP Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10630"/>
		<updated>2022-08-03T05:08:18Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 3D sector-based&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Blood}}&lt;br /&gt;
   {{Game|Build Engine 1994}}&lt;br /&gt;
   {{Game|Duke Nukem 3D}}&lt;br /&gt;
   {{Game|Extreme Paintbrawl}}&lt;br /&gt;
   {{Game|Fate Demo}}&lt;br /&gt;
   {{Game|Ion Maiden/Fury}}&lt;br /&gt;
   {{Game|Lame Duke}}&lt;br /&gt;
   {{Game|Legend of Seven Paladins 3D}}&lt;br /&gt;
   {{Game|Liquidator}}&lt;br /&gt;
   {{Game|NAM}}&lt;br /&gt;
   {{Game|Powerslave}}&lt;br /&gt;
   {{Game|Shadow Warrior}}&lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
   {{Game|Redneck Deer Huntin}}&lt;br /&gt;
   {{Game|Redneck Rampage}}&lt;br /&gt;
   {{Game|Redneck Rides Again}}&lt;br /&gt;
   {{Game|William Shatner&#039;s TekWar}}&lt;br /&gt;
   {{Game|Witchaven}}&lt;br /&gt;
   {{Game|Witchaven II}}&lt;br /&gt;
   {{Game|WWII GI}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;MAP Format&#039;&#039;&#039; is used by [[:Category:Build engine|BUILD]] games for storing game levels.  It is somewhat similar in content (though not structure) to the [[Doom]] level format, as both are sector-based.  Ken Silverman has written programs to convert Doom maps into BUILD maps.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
=== Version 9 ===&lt;br /&gt;
TROR is present in map&lt;br /&gt;
&lt;br /&gt;
=== Version 8 ===&lt;br /&gt;
Limits increased&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Limit !! value&lt;br /&gt;
|-&lt;br /&gt;
| MAXSECTORS || 4096&lt;br /&gt;
|-&lt;br /&gt;
| MAXWALLS || 16384&lt;br /&gt;
|-&lt;br /&gt;
| MAXSPRITES || 16384&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 7 ===&lt;br /&gt;
This is the main map version for commercially released games&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Limit !! value&lt;br /&gt;
|-&lt;br /&gt;
| MAXSECTORS || 1024&lt;br /&gt;
|-&lt;br /&gt;
| MAXWALLS || 8192&lt;br /&gt;
|-&lt;br /&gt;
| MAXSPRITES || 4096&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || mapversion || File format version number (latest in released games is 7, source ports use 8 and 9)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posx || Player start point, X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posy || Player start point, Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posz || Player start point, Z coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Player starting angle&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cursectnum || Sector number containing the start point&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsectors || Number of sectors in the map&lt;br /&gt;
|-&lt;br /&gt;
| SECTOR[numsectors] || sector || Information about each sector&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numwalls || Number of walls in the map&lt;br /&gt;
|-&lt;br /&gt;
| WALL[numwalls] || wall || Information about each wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsprites || Number of sprites in the map&lt;br /&gt;
|-&lt;br /&gt;
| SPRITE[numsprites] || sprite || Information about each sprite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SECTOR&amp;lt;/tt&amp;gt; is defined as the following 40-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bits 7-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || Padding byte&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 1024 sectors in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;WALL&amp;lt;/tt&amp;gt; is defined as the following 32-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 8192 walls in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SPRITE&amp;lt;/tt&amp;gt; is defined as the following 44-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || &lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 4096 sprites in a map.&lt;br /&gt;
&lt;br /&gt;
The significance of the lotag, hitag and extra variables is decided by each particular game and can sometimes be discerned from the editing documents for the game in question, if available.  lotag and hitag are frequently used to set up trigger actions, for example a lift moving in response to a switch being thrown, but may have other uses as well (the Witchaven games, for instance, use the hitag on monster sprites internally to store the monster&#039;s hit point value, overwriting anything set there during map creation.)&lt;br /&gt;
&lt;br /&gt;
=== Version 6 ===&lt;br /&gt;
&lt;br /&gt;
Version 6 had differently ordered variables, no filler variables, smaller bit flag variables for floors and ceilings, lower precision for slopes and no reverse translucence bit flag.  It appears in [[Witchaven]] and [[William Shatner&#039;s TekWar]]. {{TODO|(Possibly also Powerslave/Exhumed, confirm.)}}&lt;br /&gt;
&lt;br /&gt;
The header variables are arranged just like in version 7, but version number will be 6.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sectors&#039;&#039;&#039;:&lt;br /&gt;
There is no &amp;quot;filler&amp;quot; value, floorstat/ceilingstat are 8-bit values, and the order of variables is different.&lt;br /&gt;
&lt;br /&gt;
When converting with CONVMAP7, the program will set ceilingheinum or floorheinum to 0 if bit 1 of the corresponding ceilingstat or floorstat of a sector is 0.  Otherwise ceilingheinum/floorheinum will be adjusted for higher precision.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bit 7: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Walls&#039;&#039;&#039;:&lt;br /&gt;
The ordering of the variables differs slightly.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 9-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sprites&#039;&#039;&#039;: The order of the variables differs and there is no &amp;quot;filler&amp;quot; value.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bits 9-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 5 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 4 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 3 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 0 ===&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* All angles are between 0..2047 inclusive.  0 is &amp;quot;north&amp;quot;, parallel to the Y-axis, moving away from the X-axis.  512 is &amp;quot;east&amp;quot;, parallel to the X-axis moving away from the Y-axis.&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
&lt;br /&gt;
* This information comes from &amp;lt;tt&amp;gt;[https://github.com/jonof/jfbuild/blob/master/doc/buildinf.txt BUILDINF.TXT]&amp;lt;/tt&amp;gt;, BUILD2.TXT and the source code to CONVMAP7 in the [http://advsys.net/ken/buildsrc/default.htm Build source] files, written by Ken Silverman.&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10629</id>
		<title>MAP Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10629"/>
		<updated>2022-08-03T05:06:42Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 3D sector-based&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Blood}}&lt;br /&gt;
   {{Game|Duke Nukem 3D}}&lt;br /&gt;
   {{Game|Shadow Warrior}}&lt;br /&gt;
   {{Game|Redneck Rampage}}&lt;br /&gt;
   {{Game|Witchaven}}&lt;br /&gt;
   {{Game|Witchaven II}}&lt;br /&gt;
   {{Game|William Shatner&#039;s TekWar}}&lt;br /&gt;
   {{Game|Build Engine 1994}}&lt;br /&gt;
   {{Game|Legend of Seven Paladins 3D}}&lt;br /&gt;
   {{Game|Powerslave}}&lt;br /&gt;
   {{Game|Fate Demo}}&lt;br /&gt;
   {{Game|Lame Duke}}&lt;br /&gt;
   {{Game|Redneck Deer Huntin}}&lt;br /&gt;
   {{Game|Extreme Paintbrawl}}&lt;br /&gt;
   {{Game|NAM}}&lt;br /&gt;
   {{Game|Redneck Rides Again}}&lt;br /&gt;
   {{Game|WWII GI}}&lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
   {{Game|Ion Maiden/Fury}}&lt;br /&gt;
   {{Game|Liquidator}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;MAP Format&#039;&#039;&#039; is used by [[:Category:Build engine|BUILD]] games for storing game levels.  It is somewhat similar in content (though not structure) to the [[Doom]] level format, as both are sector-based.  Ken Silverman has written programs to convert Doom maps into BUILD maps.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
=== Version 9 ===&lt;br /&gt;
TROR is present in map&lt;br /&gt;
&lt;br /&gt;
=== Version 8 ===&lt;br /&gt;
Limits increased&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Limit !! value&lt;br /&gt;
|-&lt;br /&gt;
| MAXSECTORS || 4096&lt;br /&gt;
|-&lt;br /&gt;
| MAXWALLS || 16384&lt;br /&gt;
|-&lt;br /&gt;
| MAXSPRITES || 16384&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 7 ===&lt;br /&gt;
This is the main map version for commercially released games&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Limit !! value&lt;br /&gt;
|-&lt;br /&gt;
| MAXSECTORS || 1024&lt;br /&gt;
|-&lt;br /&gt;
| MAXWALLS || 8192&lt;br /&gt;
|-&lt;br /&gt;
| MAXSPRITES || 4096&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || mapversion || File format version number (latest in released games is 7, source ports use 8 and 9)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posx || Player start point, X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posy || Player start point, Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posz || Player start point, Z coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Player starting angle&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cursectnum || Sector number containing the start point&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsectors || Number of sectors in the map&lt;br /&gt;
|-&lt;br /&gt;
| SECTOR[numsectors] || sector || Information about each sector&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numwalls || Number of walls in the map&lt;br /&gt;
|-&lt;br /&gt;
| WALL[numwalls] || wall || Information about each wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsprites || Number of sprites in the map&lt;br /&gt;
|-&lt;br /&gt;
| SPRITE[numsprites] || sprite || Information about each sprite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SECTOR&amp;lt;/tt&amp;gt; is defined as the following 40-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bits 7-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || Padding byte&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 1024 sectors in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;WALL&amp;lt;/tt&amp;gt; is defined as the following 32-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 8192 walls in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SPRITE&amp;lt;/tt&amp;gt; is defined as the following 44-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || &lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 4096 sprites in a map.&lt;br /&gt;
&lt;br /&gt;
The significance of the lotag, hitag and extra variables is decided by each particular game and can sometimes be discerned from the editing documents for the game in question, if available.  lotag and hitag are frequently used to set up trigger actions, for example a lift moving in response to a switch being thrown, but may have other uses as well (the Witchaven games, for instance, use the hitag on monster sprites internally to store the monster&#039;s hit point value, overwriting anything set there during map creation.)&lt;br /&gt;
&lt;br /&gt;
=== Version 6 ===&lt;br /&gt;
&lt;br /&gt;
Version 6 had differently ordered variables, no filler variables, smaller bit flag variables for floors and ceilings, lower precision for slopes and no reverse translucence bit flag.  It appears in [[Witchaven]] and [[William Shatner&#039;s TekWar]]. {{TODO|(Possibly also Powerslave/Exhumed, confirm.)}}&lt;br /&gt;
&lt;br /&gt;
The header variables are arranged just like in version 7, but version number will be 6.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sectors&#039;&#039;&#039;:&lt;br /&gt;
There is no &amp;quot;filler&amp;quot; value, floorstat/ceilingstat are 8-bit values, and the order of variables is different.&lt;br /&gt;
&lt;br /&gt;
When converting with CONVMAP7, the program will set ceilingheinum or floorheinum to 0 if bit 1 of the corresponding ceilingstat or floorstat of a sector is 0.  Otherwise ceilingheinum/floorheinum will be adjusted for higher precision.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bit 7: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Walls&#039;&#039;&#039;:&lt;br /&gt;
The ordering of the variables differs slightly.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 9-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sprites&#039;&#039;&#039;: The order of the variables differs and there is no &amp;quot;filler&amp;quot; value.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bits 9-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 5 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 4 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 3 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 0 ===&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* All angles are between 0..2047 inclusive.  0 is &amp;quot;north&amp;quot;, parallel to the Y-axis, moving away from the X-axis.  512 is &amp;quot;east&amp;quot;, parallel to the X-axis moving away from the Y-axis.&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
&lt;br /&gt;
* This information comes from &amp;lt;tt&amp;gt;[https://github.com/jonof/jfbuild/blob/master/doc/buildinf.txt BUILDINF.TXT]&amp;lt;/tt&amp;gt;, BUILD2.TXT and the source code to CONVMAP7 in the [http://advsys.net/ken/buildsrc/default.htm Build source] files, written by Ken Silverman.&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10628</id>
		<title>Shaw&#039;s Nightmare 1</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_1&amp;diff=10628"/>
		<updated>2022-08-03T05:00:58Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: Created page with &amp;quot;{{Stub}}  {{Game Infobox  | Levels = No  | Tiles = No  | Sprites = No  | Fullscreen = No  | Sound = No  | Music = No  | Text = No  | Story = No  | Interface = No }}  Shaws N...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 1]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10627</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10627"/>
		<updated>2022-08-03T05:00:35Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10626</id>
		<title>Shaw&#039;s Nightmare 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Shaw%27s_Nightmare_2&amp;diff=10626"/>
		<updated>2022-08-03T04:59:32Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: Created page with &amp;quot;Shaws Nightmare 2 is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shaw...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Shaws Nightmare 2]] is a DOS 3D game by Mickey Productions. It uses the BUILD engine by Ken Silverman. You can find out more about the game and download it from https://shawsnightmare.ucoz.com/index/shaw_39_s_nightmare_ii/0-6&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D&amp;diff=10625</id>
		<title>Legend of Seven Paladins 3D</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D&amp;diff=10625"/>
		<updated>2022-08-03T01:30:22Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Legend of Seven Paladins 3D]] is a first-person shooter and it&#039;s the first commercially released game that uses the [[:Category:Build engine|Build engine]].&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/lotsp.htm#extractor Lotspe]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/lotspe LOTSPE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/lotspp LOTSPP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Write&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 75m.exe&amp;lt;br /&amp;gt;75t.exe&amp;lt;br /&amp;gt;laart000.dat&amp;lt;br /&amp;gt;ltart000.dat&lt;br /&gt;
 | Format = [[EXE format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Executables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = l0art000.dat&amp;lt;br /&amp;gt;l1art000.dat&lt;br /&gt;
 | Format = [[ART Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Level textures and sprites&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = lcart000.dat&amp;lt;br /&amp;gt;lfart000.dat&amp;lt;br /&amp;gt;lgart000.dat&lt;br /&gt;
 | Format = [[FLIC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Animations&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = lmart000.dat&amp;lt;br /&amp;gt;lvart000.dat&lt;br /&gt;
 | Format = [[Legend of Seven Paladins 3D Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = setup.dat&lt;br /&gt;
 | Format = [[Legend of Seven Paladins 3D Settings Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Game settings&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mid&lt;br /&gt;
 | Format = [[MID Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.voc&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D_Archive_Format&amp;diff=10624</id>
		<title>Legend of Seven Paladins 3D Archive Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D_Archive_Format&amp;diff=10624"/>
		<updated>2022-08-03T00:51:55Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = less than 4,294,967,296&lt;br /&gt;
 | FAT = Beginning&lt;br /&gt;
 | Names = N&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = Y&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Legend of Seven Paladins 3D}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Legend of Seven Paladins 3D Archive Format&#039;&#039;&#039; is one of the more efficient archives in that it only stores file offsets in the headers, and the file sizes must be calculated from these. It doesn&#039;t store filenames.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The file starts with a [[UINT32LE]] representing the offset of the first file in the archive. Then comes a [[UINT32LE]] representing the offset of the second file, etc. Until a [[UINT32LE]] comes along who&#039;s value is the same as the file size of the archive.&lt;br /&gt;
Between these offsets and the actual data of the first file, there is room for hidden data.&lt;br /&gt;
&lt;br /&gt;
The size of a file must be calculated from the offset of the next file minus its own offset.&lt;br /&gt;
&lt;br /&gt;
This archive doesn&#039;t store filenames, so it&#039;s impossible to determine the file formats of the archived files by looking at the filename extension. Luckily, all file formats of the files in the officially released archives can be determined by looking at the first byte of each file:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! First byte !! File format&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&amp;lt;br /&amp;gt; 0x1f&lt;br /&gt;
| 6-bit [[VGA Palette]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| [[Build-engine Map Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0a&lt;br /&gt;
| [[PCX Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x43&lt;br /&gt;
| [[VOC Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4d&lt;br /&gt;
| [[MID Format]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/lotsp.htm#extractor Lotspe]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/lotspe LOTSPE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/lotspp LOTSPP]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = no&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Frenkel|Frenkel]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10623</id>
		<title>MAP Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10623"/>
		<updated>2022-08-02T06:33:26Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 3D sector-based&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Blood}}&lt;br /&gt;
   {{Game|Duke Nukem 3D}}&lt;br /&gt;
   {{Game|Shadow Warrior}}&lt;br /&gt;
   {{Game|Redneck Rampage}}&lt;br /&gt;
   {{Game|Witchaven}}&lt;br /&gt;
   {{Game|Witchaven II}}&lt;br /&gt;
   {{Game|William Shatner&#039;s TekWar}}&lt;br /&gt;
   {{Game|Build Engine 1994}}&lt;br /&gt;
   {{Game|Rock &#039;n Shaolin - Legend of the Seven Paladins 3D}}&lt;br /&gt;
   {{Game|Powerslave}}&lt;br /&gt;
   {{Game|Fate Demo}}&lt;br /&gt;
   {{Game|Lame Duke}}&lt;br /&gt;
   {{Game|Redneck Deer Huntin}}&lt;br /&gt;
   {{Game|Extreme Paintbrawl}}&lt;br /&gt;
   {{Game|NAM}}&lt;br /&gt;
   {{Game|Redneck Rides Again}}&lt;br /&gt;
   {{Game|WWII GI}}&lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
   {{Game|Ion Maiden/Fury}}&lt;br /&gt;
   {{Game|Liquidator}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;MAP Format&#039;&#039;&#039; is used by [[:Category:Build engine|BUILD]] games for storing game levels.  It is somewhat similar in content (though not structure) to the [[Doom]] level format, as both are sector-based.  Ken Silverman has written programs to convert Doom maps into BUILD maps.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
=== Version 9 ===&lt;br /&gt;
TROR is present in map&lt;br /&gt;
&lt;br /&gt;
=== Version 8 ===&lt;br /&gt;
Limits increased&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Limit !! value&lt;br /&gt;
|-&lt;br /&gt;
| MAXSECTORS || 4096&lt;br /&gt;
|-&lt;br /&gt;
| MAXWALLS || 16384&lt;br /&gt;
|-&lt;br /&gt;
| MAXSPRITES || 16384&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 7 ===&lt;br /&gt;
This is the main map version for commercially released games&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Limit !! value&lt;br /&gt;
|-&lt;br /&gt;
| MAXSECTORS || 1024&lt;br /&gt;
|-&lt;br /&gt;
| MAXWALLS || 8192&lt;br /&gt;
|-&lt;br /&gt;
| MAXSPRITES || 4096&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || mapversion || File format version number (latest in released games is 7, source ports use 8 and 9)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posx || Player start point, X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posy || Player start point, Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posz || Player start point, Z coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Player starting angle&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cursectnum || Sector number containing the start point&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsectors || Number of sectors in the map&lt;br /&gt;
|-&lt;br /&gt;
| SECTOR[numsectors] || sector || Information about each sector&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numwalls || Number of walls in the map&lt;br /&gt;
|-&lt;br /&gt;
| WALL[numwalls] || wall || Information about each wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsprites || Number of sprites in the map&lt;br /&gt;
|-&lt;br /&gt;
| SPRITE[numsprites] || sprite || Information about each sprite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SECTOR&amp;lt;/tt&amp;gt; is defined as the following 40-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bits 7-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || Padding byte&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 1024 sectors in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;WALL&amp;lt;/tt&amp;gt; is defined as the following 32-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 8192 walls in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SPRITE&amp;lt;/tt&amp;gt; is defined as the following 44-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || &lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 4096 sprites in a map.&lt;br /&gt;
&lt;br /&gt;
The significance of the lotag, hitag and extra variables is decided by each particular game and can sometimes be discerned from the editing documents for the game in question, if available.  lotag and hitag are frequently used to set up trigger actions, for example a lift moving in response to a switch being thrown, but may have other uses as well (the Witchaven games, for instance, use the hitag on monster sprites internally to store the monster&#039;s hit point value, overwriting anything set there during map creation.)&lt;br /&gt;
&lt;br /&gt;
=== Version 6 ===&lt;br /&gt;
&lt;br /&gt;
Version 6 had differently ordered variables, no filler variables, smaller bit flag variables for floors and ceilings, lower precision for slopes and no reverse translucence bit flag.  It appears in [[Witchaven]] and [[William Shatner&#039;s TekWar]]. {{TODO|(Possibly also Powerslave/Exhumed, confirm.)}}&lt;br /&gt;
&lt;br /&gt;
The header variables are arranged just like in version 7, but version number will be 6.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sectors&#039;&#039;&#039;:&lt;br /&gt;
There is no &amp;quot;filler&amp;quot; value, floorstat/ceilingstat are 8-bit values, and the order of variables is different.&lt;br /&gt;
&lt;br /&gt;
When converting with CONVMAP7, the program will set ceilingheinum or floorheinum to 0 if bit 1 of the corresponding ceilingstat or floorstat of a sector is 0.  Otherwise ceilingheinum/floorheinum will be adjusted for higher precision.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bit 7: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Walls&#039;&#039;&#039;:&lt;br /&gt;
The ordering of the variables differs slightly.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 9-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sprites&#039;&#039;&#039;: The order of the variables differs and there is no &amp;quot;filler&amp;quot; value.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bits 9-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 5 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 4 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 3 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 0 ===&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* All angles are between 0..2047 inclusive.  0 is &amp;quot;north&amp;quot;, parallel to the Y-axis, moving away from the X-axis.  512 is &amp;quot;east&amp;quot;, parallel to the X-axis moving away from the Y-axis.&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
&lt;br /&gt;
* This information comes from &amp;lt;tt&amp;gt;[https://github.com/jonof/jfbuild/blob/master/doc/buildinf.txt BUILDINF.TXT]&amp;lt;/tt&amp;gt;, BUILD2.TXT and the source code to CONVMAP7 in the [http://advsys.net/ken/buildsrc/default.htm Build source] files, written by Ken Silverman.&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10622</id>
		<title>MAP Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10622"/>
		<updated>2022-08-02T06:15:27Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 3D sector-based&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Blood}}&lt;br /&gt;
   {{Game|Duke Nukem 3D}}&lt;br /&gt;
   {{Game|Shadow Warrior}}&lt;br /&gt;
   {{Game|Redneck Rampage}}&lt;br /&gt;
   {{Game|Witchaven}}&lt;br /&gt;
   {{Game|Witchaven II}}&lt;br /&gt;
   {{Game|William Shatner&#039;s TekWar}}&lt;br /&gt;
   {{Game|Build Engine 1994}}&lt;br /&gt;
   {{Game|Rock &#039;n Shaolin - Legend of the Seven Paladins 3D}}&lt;br /&gt;
   {{Game|Powerslave}}&lt;br /&gt;
   {{Game|Fate Demo}}&lt;br /&gt;
   {{Game|Lame Duke}}&lt;br /&gt;
   {{Game|Redneck Deer Huntin}}&lt;br /&gt;
   {{Game|Extreme Paintbrawl}}&lt;br /&gt;
   {{Game|NAM}}&lt;br /&gt;
   {{Game|Redneck Rides Again}}&lt;br /&gt;
   {{Game|WWII GI}}&lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
   {{Game|Ion Maiden/Fury}}&lt;br /&gt;
   {{Game|Liquidator}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;MAP Format&#039;&#039;&#039; is used by [[:Category:Build engine|BUILD]] games for storing game levels.  It is somewhat similar in content (though not structure) to the [[Doom]] level format, as both are sector-based.  Ken Silverman has written programs to convert Doom maps into BUILD maps.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
=== Version 7 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || mapversion || File format version number (latest in released games is 7, source ports use 8 and 9)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posx || Player start point, X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posy || Player start point, Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posz || Player start point, Z coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Player starting angle&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cursectnum || Sector number containing the start point&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsectors || Number of sectors in the map&lt;br /&gt;
|-&lt;br /&gt;
| SECTOR[numsectors] || sector || Information about each sector&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numwalls || Number of walls in the map&lt;br /&gt;
|-&lt;br /&gt;
| WALL[numwalls] || wall || Information about each wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsprites || Number of sprites in the map&lt;br /&gt;
|-&lt;br /&gt;
| SPRITE[numsprites] || sprite || Information about each sprite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SECTOR&amp;lt;/tt&amp;gt; is defined as the following 40-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bits 7-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || Padding byte&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 1024 sectors in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;WALL&amp;lt;/tt&amp;gt; is defined as the following 32-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 8192 walls in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SPRITE&amp;lt;/tt&amp;gt; is defined as the following 44-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || &lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 4096 sprites in a map.&lt;br /&gt;
&lt;br /&gt;
The significance of the lotag, hitag and extra variables is decided by each particular game and can sometimes be discerned from the editing documents for the game in question, if available.  lotag and hitag are frequently used to set up trigger actions, for example a lift moving in response to a switch being thrown, but may have other uses as well (the Witchaven games, for instance, use the hitag on monster sprites internally to store the monster&#039;s hit point value, overwriting anything set there during map creation.)&lt;br /&gt;
&lt;br /&gt;
=== Version 6 ===&lt;br /&gt;
&lt;br /&gt;
Version 6 had differently ordered variables, no filler variables, smaller bit flag variables for floors and ceilings, lower precision for slopes and no reverse translucence bit flag.  It appears in [[Witchaven]] and [[William Shatner&#039;s TekWar]]. {{TODO|(Possibly also Powerslave/Exhumed, confirm.)}}&lt;br /&gt;
&lt;br /&gt;
The header variables are arranged just like in version 7, but version number will be 6.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sectors&#039;&#039;&#039;:&lt;br /&gt;
There is no &amp;quot;filler&amp;quot; value, floorstat/ceilingstat are 8-bit values, and the order of variables is different.&lt;br /&gt;
&lt;br /&gt;
When converting with CONVMAP7, the program will set ceilingheinum or floorheinum to 0 if bit 1 of the corresponding ceilingstat or floorstat of a sector is 0.  Otherwise ceilingheinum/floorheinum will be adjusted for higher precision.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bit 7: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Walls&#039;&#039;&#039;:&lt;br /&gt;
The ordering of the variables differs slightly.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 9-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sprites&#039;&#039;&#039;: The order of the variables differs and there is no &amp;quot;filler&amp;quot; value.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bits 9-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Version 5 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 4 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 3 ===&lt;br /&gt;
&lt;br /&gt;
=== Version 0 ===&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* All angles are between 0..2047 inclusive.  0 is &amp;quot;north&amp;quot;, parallel to the Y-axis, moving away from the X-axis.  512 is &amp;quot;east&amp;quot;, parallel to the X-axis moving away from the Y-axis.&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
&lt;br /&gt;
* This information comes from &amp;lt;tt&amp;gt;[https://github.com/jonof/jfbuild/blob/master/doc/buildinf.txt BUILDINF.TXT]&amp;lt;/tt&amp;gt;, BUILD2.TXT and the source code to CONVMAP7 in the [http://advsys.net/ken/buildsrc/default.htm Build source] files, written by Ken Silverman.&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10621</id>
		<title>MAP Format (Build)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=MAP_Format_(Build)&amp;diff=10621"/>
		<updated>2022-08-02T06:13:27Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 3D sector-based&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Blood}}&lt;br /&gt;
   {{Game|Duke Nukem 3D}}&lt;br /&gt;
   {{Game|Shadow Warrior}}&lt;br /&gt;
   {{Game|Redneck Rampage}}&lt;br /&gt;
   {{Game|Witchaven}}&lt;br /&gt;
   {{Game|Witchaven II}}&lt;br /&gt;
   {{Game|William Shatner&#039;s TekWar}}&lt;br /&gt;
   {{Game|Build Engine 1994}}&lt;br /&gt;
   {{Game|Rock &#039;n Shaolin - Legend of the Seven Paladins 3D}}&lt;br /&gt;
   {{Game|Powerslave}}&lt;br /&gt;
   {{Game|Fate Demo}}&lt;br /&gt;
   {{Game|Lame Duke}}&lt;br /&gt;
   {{Game|Redneck Deer Huntin}}&lt;br /&gt;
   {{Game|Extreme Paintbrawl}}&lt;br /&gt;
   {{Game|NAM}}&lt;br /&gt;
   {{Game|Redneck Rides Again}}&lt;br /&gt;
   {{Game|WWII GI}}&lt;br /&gt;
   {{Game|Shaws Nightmare 1}}&lt;br /&gt;
   {{Game|Shaws Nightmare 2}}&lt;br /&gt;
   {{Game|Ion Maiden/Fury}}&lt;br /&gt;
   {{Game|Liquidator}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;MAP Format&#039;&#039;&#039; is used by [[:Category:Build engine|BUILD]] games for storing game levels.  It is somewhat similar in content (though not structure) to the [[Doom]] level format, as both are sector-based.  Ken Silverman has written programs to convert Doom maps into BUILD maps.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || mapversion || File format version number (latest in released games is 7, source ports use 8 and 9)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posx || Player start point, X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posy || Player start point, Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || posz || Player start point, Z coordinate&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Player starting angle&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cursectnum || Sector number containing the start point&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsectors || Number of sectors in the map&lt;br /&gt;
|-&lt;br /&gt;
| SECTOR[numsectors] || sector || Information about each sector&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numwalls || Number of walls in the map&lt;br /&gt;
|-&lt;br /&gt;
| WALL[numwalls] || wall || Information about each wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || numsprites || Number of sprites in the map&lt;br /&gt;
|-&lt;br /&gt;
| SPRITE[numsprites] || sprite || Information about each sprite&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SECTOR&amp;lt;/tt&amp;gt; is defined as the following 40-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bits 7-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || Slope value (rise/run; 0 = parallel to floor, 4096 = 45 degrees)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || Padding byte&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 1024 sectors in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;WALL&amp;lt;/tt&amp;gt; is defined as the following 32-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 8192 walls in a map.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;tt&amp;gt;SPRITE&amp;lt;/tt&amp;gt; is defined as the following 44-byte structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 9: 1 = Transluscence reversing, 0 = normal&lt;br /&gt;
* bits 10-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || filler || &lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The original documents suggest there can be a maximum of 4096 sprites in a map.&lt;br /&gt;
&lt;br /&gt;
The significance of the lotag, hitag and extra variables is decided by each particular game and can sometimes be discerned from the editing documents for the game in question, if available.  lotag and hitag are frequently used to set up trigger actions, for example a lift moving in response to a switch being thrown, but may have other uses as well (the Witchaven games, for instance, use the hitag on monster sprites internally to store the monster&#039;s hit point value, overwriting anything set there during map creation.)&lt;br /&gt;
&lt;br /&gt;
== Version 6 ==&lt;br /&gt;
&lt;br /&gt;
Version 6 had differently ordered variables, no filler variables, smaller bit flag variables for floors and ceilings, lower precision for slopes and no reverse translucence bit flag.  It appears in [[Witchaven]] and [[William Shatner&#039;s TekWar]]. {{TODO|(Possibly also Powerslave/Exhumed, confirm.)}}&lt;br /&gt;
&lt;br /&gt;
The header variables are arranged just like in version 7, but version number will be 6.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sectors&#039;&#039;&#039;:&lt;br /&gt;
There is no &amp;quot;filler&amp;quot; value, floorstat/ceilingstat are 8-bit values, and the order of variables is different.&lt;br /&gt;
&lt;br /&gt;
When converting with CONVMAP7, the program will set ceilingheinum or floorheinum to 0 if bit 1 of the corresponding ceilingstat or floorstat of a sector is 0.  Otherwise ceilingheinum/floorheinum will be adjusted for higher precision.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallptr || Index to first wall in sector {{TODO|Index in what units? count? offset?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || wallnum || Number of walls in sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingpicnum || Ceiling texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorpicnum || Floor texture (index into ART file)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ceilingheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || floorheinum || {{TODO|Slope value is treated differently in v6}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || ceilingz || Z-coordinate (height) of ceiling at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || floorz || Z-coordinate (height) of floor at first point of sector&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || ceilingshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || floorshade || Shade offset&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingxpanning || Texture coordinate X-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorxpanning || Texture coordinate X-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingypanning || Texture coordinate Y-offset for ceiling&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorypanning || Texture coordinate Y-offset for floor&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingstat ||rowspan=2|&lt;br /&gt;
* bit 0: 1 = parallaxing, 0 = not&lt;br /&gt;
* bit 1: 1 = sloped, 0 = not&lt;br /&gt;
* bit 2: 1 = swap x&amp;amp;y, 0 = not&lt;br /&gt;
* bit 3: 1 = double smooshiness&lt;br /&gt;
* bit 4: 1 = x-flip&lt;br /&gt;
* bit 5: 1 = y-flip&lt;br /&gt;
* bit 6: 1 = Align texture to first wall of sector&lt;br /&gt;
* bit 7: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorstat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ceilingpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || floorpal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || visibility || How fast an area changes shade relative to distance&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Walls&#039;&#039;&#039;:&lt;br /&gt;
The ordering of the variables differs slightly.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of left side of wall (right side coordinate is obtained from the next wall&#039;s left side)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || point2 || Index to next wall on the right (always in the same sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextsector || Index to sector on other side of wall (-1 if there is no sector)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || nextwall || Index to wall on other side of wall (-1 if there is no sector there)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || overpicnum || Texture index into ART file for masked/one-way walls&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking wall (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = bottoms of invisible walls swapped, 0 = not&lt;br /&gt;
* bit 2: 1 = align picture on bottom (for doors), 0 = top&lt;br /&gt;
* bit 3: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 4: 1 = masking wall, 0 = not&lt;br /&gt;
* bit 5: 1 = 1-way wall, 0 = not&lt;br /&gt;
* bit 6: 1 = Blocking wall (use with hitscan / cliptype 1)&lt;br /&gt;
* bit 7: 1 = Transluscence, 0 = not&lt;br /&gt;
* bit 8: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 9-15: reserved&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xpanning ||rowspan=2| Offset for aligning textures&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ypanning&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sprites&#039;&#039;&#039;: The order of the variables differs and there is no &amp;quot;filler&amp;quot; value.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || x || X-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || y || Y-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32LE]] || z || Z-coordinate of sprite&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || cstat ||&lt;br /&gt;
* bit 0: 1 = Blocking sprite (use with clipmove, getzrange)&lt;br /&gt;
* bit 1: 1 = transluscence, 0 = normal&lt;br /&gt;
* bit 2: 1 = x-flipped, 0 = normal&lt;br /&gt;
* bit 3: 1 = y-flipped, 0 = normal&lt;br /&gt;
* bits 5-4: 00 = FACE sprite (default)&lt;br /&gt;
** 01 = WALL sprite (like masked walls)&lt;br /&gt;
** 10 = FLOOR sprite (parallel to ceilings&amp;amp;floors)&lt;br /&gt;
* bit 6: 1 = 1-sided sprite, 0 = normal&lt;br /&gt;
* bit 7: 1 = Real centered centering, 0 = foot center&lt;br /&gt;
* bit 8: 1 = Blocking sprite (use with hitscan / cliptype 1)&lt;br /&gt;
* bits 9-14: reserved&lt;br /&gt;
* bit 15: 1 = Invisible sprite, 0 = not invisible&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || shade || Shade offset of wall&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pal || Palette lookup table number (0 = standard colours)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || clipdist || Size of the movement clipping square (face sprites only)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xrepeat ||rowspan=2| Change pixel size to stretch/shrink textures&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yrepeat&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || xoffset ||rowspan=2| Centre sprite animations&lt;br /&gt;
|-&lt;br /&gt;
| [[INT8]] || yoffset&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || picnum || Texture index into ART file&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || ang || Angle the sprite is facing&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || xvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || yvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || zvel || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || owner || {{TODO|?}}&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || sectnum || Current sector of sprite&#039;s position&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || statnum || Current status of sprite (inactive, monster, bullet, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || lotag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || hitag || Significance is game-specific (Triggers, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || extra || Significance is game-specific&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* All angles are between 0..2047 inclusive.  0 is &amp;quot;north&amp;quot;, parallel to the Y-axis, moving away from the X-axis.  512 is &amp;quot;east&amp;quot;, parallel to the X-axis moving away from the Y-axis.&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
&lt;br /&gt;
* This information comes from &amp;lt;tt&amp;gt;[https://github.com/jonof/jfbuild/blob/master/doc/buildinf.txt BUILDINF.TXT]&amp;lt;/tt&amp;gt;, BUILD2.TXT and the source code to CONVMAP7 in the [http://advsys.net/ken/buildsrc/default.htm Build source] files, written by Ken Silverman.&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D&amp;diff=10620</id>
		<title>Legend of Seven Paladins 3D</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D&amp;diff=10620"/>
		<updated>2022-08-02T06:05:11Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Legend of Seven Paladins 3D]] is a first-person shooter and it&#039;s the first commercially released game that uses the [[:Category:Build engine|Build engine]].&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/lotsp.htm#extractor Lotspe]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/lotspe LOTSPE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 75m.exe&amp;lt;br /&amp;gt;75t.exe&amp;lt;br /&amp;gt;laart000.dat&amp;lt;br /&amp;gt;ltart000.dat&lt;br /&gt;
 | Format = [[EXE format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Executables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = l0art000.dat&amp;lt;br /&amp;gt;l1art000.dat&lt;br /&gt;
 | Format = [[ART Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Level textures and sprites&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = lcart000.dat&amp;lt;br /&amp;gt;lfart000.dat&amp;lt;br /&amp;gt;lgart000.dat&lt;br /&gt;
 | Format = [[FLIC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Animations&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = lmart000.dat&amp;lt;br /&amp;gt;lvart000.dat&lt;br /&gt;
 | Format = [[Legend of Seven Paladins 3D Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = setup.dat&lt;br /&gt;
 | Format = [[Legend of Seven Paladins 3D Settings Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Game settings&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[MAP Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mid&lt;br /&gt;
 | Format = [[MID Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.voc&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D_Archive_Format&amp;diff=10619</id>
		<title>Legend of Seven Paladins 3D Archive Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D_Archive_Format&amp;diff=10619"/>
		<updated>2022-08-02T06:01:16Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = less than 4,294,967,296&lt;br /&gt;
 | FAT = Beginning&lt;br /&gt;
 | Names = N&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = Y&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Legend of Seven Paladins 3D}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Legend of Seven Paladins 3D Archive Format&#039;&#039;&#039; is one of the more efficient archives in that it only stores file offsets in the headers, and the file sizes must be calculated from these. It doesn&#039;t store filenames.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The file starts with a [[UINT32LE]] representing the offset of the first file in the archive. Then comes a [[UINT32LE]] representing the offset of the second file, etc. Until a [[UINT32LE]] comes along who&#039;s value is the same as the file size of the archive.&lt;br /&gt;
Between these offsets and the actual data of the first file, there is room for hidden data.&lt;br /&gt;
&lt;br /&gt;
The size of a file must be calculated from the offset of the next file minus its own offset.&lt;br /&gt;
&lt;br /&gt;
This archive doesn&#039;t store filenames, so it&#039;s impossible to determine the file formats of the archived files by looking at the filename extension. Luckily, all file formats of the files in the officially released archives can be determined by looking at the first byte of each file:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! First byte !! File format&lt;br /&gt;
|-&lt;br /&gt;
| 0x00&amp;lt;br /&amp;gt; 0x1f&lt;br /&gt;
| 6-bit [[VGA Palette]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x04&lt;br /&gt;
| [[Build-engine Map Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x0a&lt;br /&gt;
| [[PCX Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x43&lt;br /&gt;
| [[VOC Format]]&lt;br /&gt;
|-&lt;br /&gt;
| 0x4d&lt;br /&gt;
| [[MID Format]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/lotsp.htm#extractor Lotspe]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/lotspe LOTSPE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Frenkel|Frenkel]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D&amp;diff=10618</id>
		<title>Legend of Seven Paladins 3D</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Legend_of_Seven_Paladins_3D&amp;diff=10618"/>
		<updated>2022-08-02T05:57:20Z</updated>

		<summary type="html">&lt;p&gt;Parlortricks: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Legend of Seven Paladins 3D]] is a first-person shooter and it&#039;s the first commercially released game that uses the [[:Category:Build engine|Build engine]].&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/lotsp.htm#extractor Lotspe]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [https://gitlab.com/build-engine/lotspe LOTSPE]&lt;br /&gt;
| Platform = Windows/Linux&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
| notes = Coded in the [https://fennel-lang.org/ Fennel] language by [https://gitlab.com/ParlorTricks parlortricks]&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = 75m.exe&amp;lt;br /&amp;gt;75t.exe&amp;lt;br /&amp;gt;laart000.dat&amp;lt;br /&amp;gt;ltart000.dat&lt;br /&gt;
 | Format = [[EXE format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Executables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = l0art000.dat&amp;lt;br /&amp;gt;l1art000.dat&lt;br /&gt;
 | Format = [[ART Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Level textures and sprites&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = lcart000.dat&amp;lt;br /&amp;gt;lfart000.dat&amp;lt;br /&amp;gt;lgart000.dat&lt;br /&gt;
 | Format = [[FLIC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Animations&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = lmart000.dat&amp;lt;br /&amp;gt;lvart000.dat&lt;br /&gt;
 | Format = [[Legend of Seven Paladins 3D Archive Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive storing most of the game&#039;s data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = palette.dat&lt;br /&gt;
 | Format = [[Palette Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Palettes, palettes swaps, shade and translucency (blending) tables&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = setup.dat&lt;br /&gt;
 | Format = [[Legend of Seven Paladins 3D Settings Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Game settings&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = tables.dat&lt;br /&gt;
 | Format = [[Tables Format (Build)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tables for sin, atn, large font, small font, gamma correction&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.map&lt;br /&gt;
 | Format = [[Build-engine Map Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mid&lt;br /&gt;
 | Format = [[MID Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = 6-bit VGA Palette&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pcx&lt;br /&gt;
 | Format = [[PCX Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.voc&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Build engine]]&lt;/div&gt;</summary>
		<author><name>Parlortricks</name></author>
	</entry>
</feed>