<?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=Arcaith</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=Arcaith"/>
	<link rel="alternate" type="text/html" href="https://zeldamods.org/wiki/Special:Contributions/Arcaith"/>
	<updated>2026-06-02T02:15:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10871</id>
		<title>TSCB</title>
		<link rel="alternate" type="text/html" href="https://zeldamods.org/w_botw/index.php?title=TSCB&amp;diff=10871"/>
		<updated>2020-08-22T01:47:47Z</updated>

		<summary type="html">&lt;p&gt;Arcaith: Updated some of the area array value table information.&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;
|Minimum Terrain Height - ranges from 0 to 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;
|Maximum Terrain Height - ranges from 0 to 1&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;
|Minimum Water Height - ranges from 0 to 1&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;
|Maximum Water Height - ranges from 0 to 1&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;
===Terrain and Water Height===&lt;br /&gt;
0x0c through 0x18 are used to determine what height range the terrain and water should render within. This is possibly used to assist with occlusion. If the heightmap moves outside of the range defined here, there will be visual artefacts present at higher viewing angles, usually between 45 and 90 degrees. The range value is multiplied by the max height defined in the TSCB header to determine the final value in &#039;real&#039; co-ordinates.&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>Arcaith</name></author>
	</entry>
</feed>