<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://zeldamods.org/w_botw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=THplusplus</id>
	<title>ZeldaMods (Breath of the Wild) - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://zeldamods.org/w_botw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=THplusplus"/>
	<link rel="alternate" type="text/html" href="https://zeldamods.org/wiki/Special:Contributions/THplusplus"/>
	<updated>2026-06-02T00:04:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10509</id>
		<title>TSCB</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10509"/>
		<updated>2020-05-22T13:28:22Z</updated>

		<summary type="html">&lt;p&gt;THplusplus: /* Extra Information Array Value Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;errain &#039;&#039;&#039;sc&#039;&#039;&#039;ene &#039;&#039;&#039;b&#039;&#039;&#039;inary (TSCB) files describe terrain areas layout and terrain materials.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TSCB File Specification==&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|String&lt;br /&gt;
|TSCB file signature (magic) &amp;lt;code&amp;gt;54 53 43 42&amp;lt;/code&amp;gt; or &amp;quot;TSCB&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|TSCB version? &amp;lt;code&amp;gt;0A 00 00 00&amp;lt;/code&amp;gt; or &amp;quot;10.0.0.0&amp;quot;&amp;lt;ref&amp;gt;U-King.elf:0x024D2F8C-0x024D300A holds two error messages: &amp;quot;【データロード】メジャーバージョンの不一致&amp;quot; (&amp;quot;[Data load] Major version mismatch&amp;quot;) and &amp;quot;【データロード】マイナーバージョンの不一致&amp;quot; (&amp;quot;[Data Load] Minor version mismatch&amp;quot;)&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Game crashes on load screen if not equal to &amp;lt;code&amp;gt;0A 00 00 00&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always &amp;lt;code&amp;gt;00 00 00 01&amp;lt;/code&amp;gt;. Game crashes on load screen if not equal to &amp;lt;code&amp;gt;00 00 00 01&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;file_base&amp;lt;/code&amp;gt; table relative offset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;world_scale&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;500.0&amp;lt;/code&amp;gt;. Scales the terrain along the x- and z-axis.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Terrain mesh max height &amp;lt;code&amp;gt;800.0&amp;lt;/code&amp;gt;. Used to calculate the actual vertex height with [[HGHT|hght]] data.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt; length (number of elements in the array)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x1c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;area_array&amp;lt;/code&amp;gt; length (number of elements in the array)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Probably padding&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Probably padding&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;tile_size&amp;lt;/code&amp;gt;. Used by the area array.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown &amp;lt;code&amp;gt;00 00 00 08&amp;lt;/code&amp;gt;. &amp;lt;ref&amp;gt;Values &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; affects textures. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; will crash the game.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Material Information Array==&lt;br /&gt;
The material information array references texture data contained in &amp;lt;code&amp;gt;content/Model/Terrain.Tex1.sbfres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
The material information header is one value, the section size. This includes the index table and the value table.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Material info section size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Material Information Array Lookup Table===&lt;br /&gt;
Following the header is a table of relative offsets to each entry in &amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Offset to array entry, relative to the first byte of this offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Material Information Value Table===&lt;br /&gt;
Each entry in the array contains an index and four attributes&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Array index (&amp;lt;code&amp;gt;mat_index&amp;lt;/code&amp;gt;) of &amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Texture u-axis (x-axis)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Texture v-axis (y-axis)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown. values range from 0-1.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown. values range from 0.2-1.63&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Area Array==&lt;br /&gt;
&lt;br /&gt;
===Area Array Lookup Table===&lt;br /&gt;
Following the material information section is a table of relative offsets to each entry in area_array&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Offset to array entry, relative to the first byte of this offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Area Array Value Table===&lt;br /&gt;
Each entry contains meta data for one tile in the terrain scene. There are multiple levels of detail (lod) for the terrain.&lt;br /&gt;
&lt;br /&gt;
Entry size ranges from &amp;lt;code&amp;gt;0x30&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0x58&amp;lt;/code&amp;gt; depending on the size of &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|X Position&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Z Position&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;area_size&amp;lt;/code&amp;gt; (length and width)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown - Affects grass density.&amp;lt;ref&amp;gt;0 may be default. Higher numbers have increased density.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x1c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, crashes on &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;May be a flag for grass and water? &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; seems to indicate no water or grass.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;file_base&amp;lt;/code&amp;gt;. Relative offset to file base name string.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;ref_extra&amp;lt;/code&amp;gt;. It seems to be a flag to indicate if there is an attached &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Parameters====&lt;br /&gt;
&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; - Area tile x coordinate (East-West)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; - Area tile z coordinate (North-South)&lt;br /&gt;
&amp;lt;code&amp;gt;area_size&amp;lt;/code&amp;gt; - Determines the length and width of the area. It can be calculated with:&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;(area_size / tile_size * world_scale) * 20&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;code&amp;gt;tile_size&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;world_scale&amp;lt;/code&amp;gt; are in the header.&lt;br /&gt;
&lt;br /&gt;
===Extra Information Array===&lt;br /&gt;
if &amp;lt;code&amp;gt;ref_extra&amp;lt;/code&amp;gt; does not equal &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; there is an &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt; attached to this area. The array is 4 or 8 values long.&lt;br /&gt;
&lt;br /&gt;
Every area includes a [[HGHT|.hght]] and [[MATE|.mate]] file. The &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt; indicates if there is an additional [[Water.extm|.water.extm]] and / or [[Grass.extm|.grass.extm]] file&lt;br /&gt;
&lt;br /&gt;
====Header====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|extra_info_array length. Number of values (not elements) in array.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;(0x04)&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 20, but only present when extra_info_array length is 8.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Extra Information Array Value Table====&lt;br /&gt;
After the Header, there are &amp;lt;code&amp;gt;extra_info_array length / 4&amp;lt;/code&amp;gt; elements of this structure.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 3.&lt;br /&gt;
|-&lt;br /&gt;
|0x04&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. 0 or 1.&lt;br /&gt;
|-&lt;br /&gt;
|0x08&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 1.&lt;br /&gt;
|-&lt;br /&gt;
|0x0c&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 0.&lt;br /&gt;
|}&lt;br /&gt;
 [3, 0, 1, 0, 3, 1, 1, 0] = grass, water&lt;br /&gt;
 [3, 1, 1, 0, 3, 0, 1, 0] = water, grass&lt;br /&gt;
 [3, 1, 1, 0]             = water&lt;br /&gt;
 [3, 0, 1, 0]             = grass&lt;br /&gt;
It seems that water is &amp;lt;code&amp;gt;[3, 1, 1]&amp;lt;/code&amp;gt; and grass is &amp;lt;code&amp;gt;[3, 0, 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; File Positions==&lt;br /&gt;
[[File:Stera_File_Positions.png|alt=stera File Positions|thumb|&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; File Positions]]&lt;br /&gt;
&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; files referenced in the area array are positioned using a [[wikipedia:Z-order_curve|z-order curve]] or the [[wikipedia:Moser–de_Bruijn_sequence|Moser-de Bruijn sequence]].&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File formats]]&lt;br /&gt;
[[Category:File extensions]]&lt;br /&gt;
[[Category:File extensions (STERA)]]&lt;/div&gt;</summary>
		<author><name>THplusplus</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10506</id>
		<title>TSCB</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10506"/>
		<updated>2020-05-21T15:15:29Z</updated>

		<summary type="html">&lt;p&gt;THplusplus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;errain &#039;&#039;&#039;sc&#039;&#039;&#039;ene &#039;&#039;&#039;b&#039;&#039;&#039;inary (TSCB) files describe terrain areas layout and terrain materials.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TSCB File Specification==&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|String&lt;br /&gt;
|TSCB file signature (magic) &amp;lt;code&amp;gt;54 53 43 42&amp;lt;/code&amp;gt; or &amp;quot;TSCB&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|TSCB version? &amp;lt;code&amp;gt;0A 00 00 00&amp;lt;/code&amp;gt; or &amp;quot;10.0.0.0&amp;quot;&amp;lt;ref&amp;gt;U-King.elf:0x024D2F8C-0x024D300A holds two error messages: &amp;quot;【データロード】メジャーバージョンの不一致&amp;quot; (&amp;quot;[Data load] Major version mismatch&amp;quot;) and &amp;quot;【データロード】マイナーバージョンの不一致&amp;quot; (&amp;quot;[Data Load] Minor version mismatch&amp;quot;)&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Game crashes on load screen if not equal to &amp;lt;code&amp;gt;0A 00 00 00&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always &amp;lt;code&amp;gt;00 00 00 01&amp;lt;/code&amp;gt;. Game crashes on load screen if not equal to &amp;lt;code&amp;gt;00 00 00 01&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;file_base&amp;lt;/code&amp;gt; table relative offset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;world_scale&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;500.0&amp;lt;/code&amp;gt;. Scales the terrain along the x- and z-axis.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Terrain mesh max height &amp;lt;code&amp;gt;800.0&amp;lt;/code&amp;gt;. Used to calculate the actual vertex height with [[HGHT|hght]] data.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt; length (number of elements in the array)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x1c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;area_array&amp;lt;/code&amp;gt; length (number of elements in the array)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Probably padding&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Probably padding&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;tile_size&amp;lt;/code&amp;gt;. Used by the area array.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown &amp;lt;code&amp;gt;00 00 00 08&amp;lt;/code&amp;gt;. &amp;lt;ref&amp;gt;Values &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; affects textures. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; will crash the game.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Material Information Array==&lt;br /&gt;
The material information array references texture data contained in &amp;lt;code&amp;gt;content/Model/Terrain.Tex1.sbfres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
The material information header is one value, the section size. This includes the index table and the value table.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Material info section size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Material Information Array Lookup Table===&lt;br /&gt;
Following the header is a table of relative offsets to each entry in &amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Offset to array entry, relative to the first byte of this offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Material Information Value Table===&lt;br /&gt;
Each entry in the array contains an index and four attributes&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Array index (&amp;lt;code&amp;gt;mat_index&amp;lt;/code&amp;gt;) of &amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Texture u-axis (x-axis)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Texture v-axis (y-axis)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown. values range from 0-1.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown. values range from 0.2-1.63&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Area Array==&lt;br /&gt;
&lt;br /&gt;
===Area Array Lookup Table===&lt;br /&gt;
Following the material information section is a table of relative offsets to each entry in area_array&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Offset to array entry, relative to the first byte of this offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Area Array Value Table===&lt;br /&gt;
Each entry contains meta data for one tile in the terrain scene. There are multiple levels of detail (lod) for the terrain.&lt;br /&gt;
&lt;br /&gt;
Entry size ranges from &amp;lt;code&amp;gt;0x30&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0x58&amp;lt;/code&amp;gt; depending on the size of &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|X Position&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Z Position&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;area_size&amp;lt;/code&amp;gt; (length and width)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown - Affects grass density.&amp;lt;ref&amp;gt;0 may be default. Higher numbers have increased density.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x1c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, crashes on &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;May be a flag for grass and water? &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; seems to indicate no water or grass.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;file_base&amp;lt;/code&amp;gt;. Relative offset to file base name string.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;ref_extra&amp;lt;/code&amp;gt;. It seems to be a flag to indicate if there is an attached &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Parameters====&lt;br /&gt;
&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; - Area tile x coordinate (East-West)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; - Area tile z coordinate (North-South)&lt;br /&gt;
&amp;lt;code&amp;gt;area_size&amp;lt;/code&amp;gt; - Determines the length and width of the area. It can be calculated with:&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;(area_size / tile_size * world_scale) * 20&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;code&amp;gt;tile_size&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;world_scale&amp;lt;/code&amp;gt; are in the header.&lt;br /&gt;
&lt;br /&gt;
===Extra Information Array===&lt;br /&gt;
if &amp;lt;code&amp;gt;ref_extra&amp;lt;/code&amp;gt; does not equal &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; there is an &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt; attached to this area. The array is 4 or 8 values long.&lt;br /&gt;
&lt;br /&gt;
Every area includes a [[HGHT|.hght]] and [[MATE|.mate]] file. The &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt; indicates if there is an additional [[Water.extm|.water.extm]] and / or [[Grass.extm|.grass.extm]] file&lt;br /&gt;
&lt;br /&gt;
====Header====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|extra_info_array length. Number of values (not elements) in array.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;(0x04)&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 20, but only present when extra_info_array length is 8.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Extra Information Array Value Table====&lt;br /&gt;
After the Header, there is &amp;lt;code&amp;gt;extra_info_array length&amp;lt;/code&amp;gt; / 4 elements of this structure.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 3.&lt;br /&gt;
|-&lt;br /&gt;
|0x04&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. 0 or 1.&lt;br /&gt;
|-&lt;br /&gt;
|0x08&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 1.&lt;br /&gt;
|-&lt;br /&gt;
|0x0c&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 0.&lt;br /&gt;
|}&lt;br /&gt;
 [3, 0, 1, 0, 3, 1, 1, 0] = grass, water&lt;br /&gt;
 [3, 1, 1, 0, 3, 0, 1, 0] = water, grass&lt;br /&gt;
 [3, 1, 1, 0]             = water&lt;br /&gt;
 [3, 0, 1, 0]             = grass&lt;br /&gt;
It seems that water is &amp;lt;code&amp;gt;[3, 1, 1]&amp;lt;/code&amp;gt; and grass is &amp;lt;code&amp;gt;[3, 0, 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; File Positions==&lt;br /&gt;
[[File:Stera_File_Positions.png|alt=stera File Positions|thumb|&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; File Positions]]&lt;br /&gt;
&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; files referenced in the area array are positioned using a [[wikipedia:Z-order_curve|z-order curve]] or the [[wikipedia:Moser–de_Bruijn_sequence|Moser-de Bruijn sequence]].&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File formats]]&lt;br /&gt;
[[Category:File extensions]]&lt;br /&gt;
[[Category:File extensions (STERA)]]&lt;/div&gt;</summary>
		<author><name>THplusplus</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10505</id>
		<title>TSCB</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10505"/>
		<updated>2020-05-21T14:53:35Z</updated>

		<summary type="html">&lt;p&gt;THplusplus: More in depth exploration of the Extra Information Array structure.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;errain &#039;&#039;&#039;sc&#039;&#039;&#039;ene &#039;&#039;&#039;b&#039;&#039;&#039;inary (TSCB) files describe terrain areas layout and terrain materials.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TSCB File Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|String&lt;br /&gt;
|TSCB file signature (magic) &amp;lt;code&amp;gt;54 53 43 42&amp;lt;/code&amp;gt; or &amp;quot;TSCB&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|TSCB version? &amp;lt;code&amp;gt;0A 00 00 00&amp;lt;/code&amp;gt; or &amp;quot;10.0.0.0&amp;quot;&amp;lt;ref&amp;gt;U-King.elf:0x024D2F8C-0x024D300A holds two error messages: &amp;quot;【データロード】メジャーバージョンの不一致&amp;quot; (&amp;quot;[Data load] Major version mismatch&amp;quot;) and &amp;quot;【データロード】マイナーバージョンの不一致&amp;quot; (&amp;quot;[Data Load] Minor version mismatch&amp;quot;)&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Game crashes on load screen if not equal to &amp;lt;code&amp;gt;0A 00 00 00&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always &amp;lt;code&amp;gt;00 00 00 01&amp;lt;/code&amp;gt;. Game crashes on load screen if not equal to &amp;lt;code&amp;gt;00 00 00 01&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;file_base&amp;lt;/code&amp;gt; table relative offset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;world_scale&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;500.0&amp;lt;/code&amp;gt;. Scales the terrain along the x- and z-axis.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Terrain mesh max height &amp;lt;code&amp;gt;800.0&amp;lt;/code&amp;gt;. Used to calculate the actual vertex height with [[HGHT|hght]] data.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt; length (number of elements in the array)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x1c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;area_array&amp;lt;/code&amp;gt; length (number of elements in the array)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Probably padding&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Probably padding&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;tile_size&amp;lt;/code&amp;gt;. Used by the area array.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown &amp;lt;code&amp;gt;00 00 00 08&amp;lt;/code&amp;gt;. &amp;lt;ref&amp;gt;Values &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; affects textures. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; will crash the game.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Material Information Array ==&lt;br /&gt;
The material information array references texture data contained in &amp;lt;code&amp;gt;content/Model/Terrain.Tex1.sbfres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
The material information header is one value, the section size. This includes the index table and the value table.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Material info section size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Material Information Array Lookup Table ===&lt;br /&gt;
Following the header is a table of relative offsets to each entry in &amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Offset to array entry, relative to the first byte of this offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Material Information Value Table ===&lt;br /&gt;
Each entry in the array contains an index and four attributes&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Array index (&amp;lt;code&amp;gt;mat_index&amp;lt;/code&amp;gt;) of &amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Texture u-axis (x-axis)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Texture v-axis (y-axis)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown. values range from 0-1.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown. values range from 0.2-1.63&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Area Array ==&lt;br /&gt;
&lt;br /&gt;
=== Area Array Lookup Table ===&lt;br /&gt;
Following the material information section is a table of relative offsets to each entry in area_array&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Offset to array entry, relative to the first byte of this offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Area Array Value Table ===&lt;br /&gt;
Each entry contains meta data for one tile in the terrain scene. There are multiple levels of detail (lod) for the terrain.&lt;br /&gt;
&lt;br /&gt;
Entry size ranges from &amp;lt;code&amp;gt;0x30&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0x58&amp;lt;/code&amp;gt; depending on the size of &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|X Position&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Z Position&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;area_size&amp;lt;/code&amp;gt; (length and width)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown - Affects grass density.&amp;lt;ref&amp;gt;0 may be default. Higher numbers have increased density.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x1c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, crashes on &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;May be a flag for grass and water? &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; seems to indicate no water or grass.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;file_base&amp;lt;/code&amp;gt;. Relative offset to file base name string.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;ref_extra&amp;lt;/code&amp;gt;. It seems to be a flag to indicate if there is an attached &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; - Area tile x coordinate (East-West)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; - Area tile z coordinate (North-South)&lt;br /&gt;
&amp;lt;code&amp;gt;area_size&amp;lt;/code&amp;gt; - Determines the length and width of the area. It can be calculated with:&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;(area_size / tile_size * world_scale) * 20&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;code&amp;gt;tile_size&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;world_scale&amp;lt;/code&amp;gt; are in the header.&lt;br /&gt;
&lt;br /&gt;
=== Extra Information Array ===&lt;br /&gt;
if &amp;lt;code&amp;gt;ref_extra&amp;lt;/code&amp;gt; does not equal &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; there is an &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt; attached to this area. The array is 4 or 8 values long.&lt;br /&gt;
&lt;br /&gt;
Every area includes a [[HGHT|.hght]] and [[MATE|.mate]] file. The &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt; indicates if there is an additional [[Water.extm|.water.extm]] and / or [[Grass.extm|.grass.extm]] file&lt;br /&gt;
&lt;br /&gt;
==== Header ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|extra_info_array length. Number of values (not elements) in array. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;(0x04)&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 20, but only present when extra_info_array length is 8.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Information Array Value Table ====&lt;br /&gt;
After the Header, there is either 1 (extra_info_array length 4) or 2 (extra_info_array length 8) elements of this structure.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 3.&lt;br /&gt;
|-&lt;br /&gt;
|0x04&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. 0 or 1.&lt;br /&gt;
|-&lt;br /&gt;
|0x08&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 1.&lt;br /&gt;
|-&lt;br /&gt;
|0x0c&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 0.&lt;br /&gt;
|}&lt;br /&gt;
 [3, 0, 1, 0, 3, 1, 1, 0] = grass, water&lt;br /&gt;
 [3, 1, 1, 0, 3, 0, 1, 0] = water, grass&lt;br /&gt;
 [3, 1, 1, 0]             = water&lt;br /&gt;
 [3, 0, 1, 0]             = grass&lt;br /&gt;
It seems that water is &amp;lt;code&amp;gt;[3, 1, 1]&amp;lt;/code&amp;gt; and grass is &amp;lt;code&amp;gt;[3, 0, 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; File Positions ==&lt;br /&gt;
[[File:Stera_File_Positions.png|alt=stera File Positions|thumb|&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; File Positions]]&lt;br /&gt;
&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; files referenced in the area array are positioned using a [[wikipedia:Z-order_curve|z-order curve]] or the [[wikipedia:Moser–de_Bruijn_sequence|Moser-de Bruijn sequence]].&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File formats]]&lt;br /&gt;
[[Category:File extensions]]&lt;br /&gt;
[[Category:File extensions (STERA)]]&lt;/div&gt;</summary>
		<author><name>THplusplus</name></author>
	</entry>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10504</id>
		<title>TSCB</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10504"/>
		<updated>2020-05-21T13:58:41Z</updated>

		<summary type="html">&lt;p&gt;THplusplus: Clarified the exact meaning of the offsets in the lookup tables.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;errain &#039;&#039;&#039;sc&#039;&#039;&#039;ene &#039;&#039;&#039;b&#039;&#039;&#039;inary (TSCB) files describe terrain areas layout and terrain materials.&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TSCB File Specification ==&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|String&lt;br /&gt;
|TSCB file signature (magic) &amp;lt;code&amp;gt;54 53 43 42&amp;lt;/code&amp;gt; or &amp;quot;TSCB&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|TSCB version? &amp;lt;code&amp;gt;0A 00 00 00&amp;lt;/code&amp;gt; or &amp;quot;10.0.0.0&amp;quot;&amp;lt;ref&amp;gt;U-King.elf:0x024D2F8C-0x024D300A holds two error messages: &amp;quot;【データロード】メジャーバージョンの不一致&amp;quot; (&amp;quot;[Data load] Major version mismatch&amp;quot;) and &amp;quot;【データロード】マイナーバージョンの不一致&amp;quot; (&amp;quot;[Data Load] Minor version mismatch&amp;quot;)&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Game crashes on load screen if not equal to &amp;lt;code&amp;gt;0A 00 00 00&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always &amp;lt;code&amp;gt;00 00 00 01&amp;lt;/code&amp;gt;. Game crashes on load screen if not equal to &amp;lt;code&amp;gt;00 00 00 01&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;file_base&amp;lt;/code&amp;gt; table relative offset&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;world_scale&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;500.0&amp;lt;/code&amp;gt;. Scales the terrain along the x- and z-axis.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Terrain mesh max height &amp;lt;code&amp;gt;800.0&amp;lt;/code&amp;gt;. Used to calculate the actual vertex height with [[HGHT|hght]] data.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt; length (number of elements in the array)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x1c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;area_array&amp;lt;/code&amp;gt; length (number of elements in the array)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Probably padding&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Probably padding&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;tile_size&amp;lt;/code&amp;gt;. Used by the area array.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown &amp;lt;code&amp;gt;00 00 00 08&amp;lt;/code&amp;gt;. &amp;lt;ref&amp;gt;Values &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt; affects textures. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; will crash the game.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Material Information Array ==&lt;br /&gt;
The material information array references texture data contained in &amp;lt;code&amp;gt;content/Model/Terrain.Tex1.sbfres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
The material information header is one value, the section size. This includes the index table and the value table.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Material info section size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Material Information Array Lookup Table ===&lt;br /&gt;
Following the header is a table of relative offsets to each entry in &amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Offset to array entry, relative to the first byte of this offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Material Information Value Table ===&lt;br /&gt;
Each entry in the array contains an index and four attributes&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Array index (&amp;lt;code&amp;gt;mat_index&amp;lt;/code&amp;gt;) of &amp;lt;code&amp;gt;material_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Texture u-axis (x-axis)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Texture v-axis (y-axis)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown. values range from 0-1.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown. values range from 0.2-1.63&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Area Array ==&lt;br /&gt;
&lt;br /&gt;
=== Area Array Lookup Table ===&lt;br /&gt;
Following the material information section is a table of relative offsets to each entry in area_array&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Offset to array entry, relative to the first byte of this offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Area Array Value Table ===&lt;br /&gt;
Each entry contains meta data for one tile in the terrain scene. There are multiple levels of detail (lod) for the terrain.&lt;br /&gt;
&lt;br /&gt;
Entries range from &amp;lt;code&amp;gt;0x30&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0x54&amp;lt;/code&amp;gt; depending on the size of &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|X Position&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x04&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Z Position&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|&amp;lt;code&amp;gt;area_size&amp;lt;/code&amp;gt; (length and width)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x0c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown - Affects grass density.&amp;lt;ref&amp;gt;0 may be default. Higher numbers have increased density.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x14&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x18&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Float&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x1c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, crashes on &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;May be a flag for grass and water? &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; seems to indicate no water or grass.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;file_base&amp;lt;/code&amp;gt;. Relative offset to file base name string.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x24&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x28&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x2c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|&amp;lt;code&amp;gt;ref_extra&amp;lt;/code&amp;gt;. It seems to be a flag to indicate if there is an attached &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; - Area tile x coordinate (East-West)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; - Area tile z coordinate (North-South)&lt;br /&gt;
&amp;lt;code&amp;gt;area_size&amp;lt;/code&amp;gt; - Determines the length and width of the area. It can be calculated with:&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;(area_size / tile_size * world_scale) * 20&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;code&amp;gt;tile_size&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;world_scale&amp;lt;/code&amp;gt; are in the header.&lt;br /&gt;
&lt;br /&gt;
=== Extra Information Array ===&lt;br /&gt;
if &amp;lt;code&amp;gt;ref_extra&amp;lt;/code&amp;gt; does not equal &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; there is an &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt; attached to this area. The array is 4 or 8 values long.&lt;br /&gt;
&lt;br /&gt;
Every area includes a [[HGHT|.hght]] and [[MATE|.mate]] file. The &amp;lt;code&amp;gt;extra_info_array&amp;lt;/code&amp;gt; indicates if there is an additional [[Water.extm|.water.extm]] and / or [[Grass.extm|.grass.extm]] file&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset (h)&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x30&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|extra_info_array length. Number of elements in array.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x34&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually 20 or 3.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x38&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually 0, 1 or 3.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x3c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually 0 or 1.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x40&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually 0 or 1.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x44&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 0.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x48&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 3&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x4c&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Usually 0 or 1.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x50&amp;lt;/code&amp;gt;&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Int&lt;br /&gt;
|Unknown. Always 1.&lt;br /&gt;
|}&lt;br /&gt;
 [20, 3, 0, 1, 0, 3, 1, 1] = water, grass&lt;br /&gt;
 [20, 3, 1, 1, 0, 3, 0, 1] = water, grass&lt;br /&gt;
 [ 3, 1, 1, 0]             = water&lt;br /&gt;
 [ 3, 0, 1, 0]             = grass&lt;br /&gt;
It seems that water is &amp;lt;code&amp;gt;[3, 1, 1]&amp;lt;/code&amp;gt; and grass is &amp;lt;code&amp;gt;[3, 0, 1]&amp;lt;/code&amp;gt;&lt;br /&gt;
 [20, `3, 0, 1`, 0, `3, 1, 1`] = grass, water&lt;br /&gt;
 [20, `3, 1, 1`, 0, `3, 0, 1`] = water, grass&lt;br /&gt;
 [`3, 1, 1`, 0]                = water&lt;br /&gt;
 [`3, 0, 1`, 0]                = grass&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; File Positions ==&lt;br /&gt;
[[File:Stera_File_Positions.png|alt=stera File Positions|thumb|&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; File Positions]]&lt;br /&gt;
&amp;lt;code&amp;gt;stera&amp;lt;/code&amp;gt; files referenced in the area array are positioned using a [[wikipedia:Z-order_curve|z-order curve]] or the [[wikipedia:Moser–de_Bruijn_sequence|Moser-de Bruijn sequence]].&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:File formats]]&lt;br /&gt;
[[Category:File extensions]]&lt;br /&gt;
[[Category:File extensions (STERA)]]&lt;/div&gt;</summary>
		<author><name>THplusplus</name></author>
	</entry>
</feed>