<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://alttp.run/hacking/index.php?action=history&amp;feed=atom&amp;title=Underworld%3AImportant_Hex_Addresses%2FObject_Data</id>
		<title>Underworld:Important Hex Addresses/Object Data - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://alttp.run/hacking/index.php?action=history&amp;feed=atom&amp;title=Underworld%3AImportant_Hex_Addresses%2FObject_Data"/>
		<link rel="alternate" type="text/html" href="http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;action=history"/>
		<updated>2026-06-01T05:24:48Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;diff=27462&amp;oldid=prev</id>
		<title>Tatters: /* Subtype 3 Objects */</title>
		<link rel="alternate" type="text/html" href="http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;diff=27462&amp;oldid=prev"/>
				<updated>2017-12-24T00:21:11Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Subtype 3 Objects&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 00:21, 24 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l41&quot; &gt;Line 41:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 41:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Subtype 3 Objects====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Subtype 3 Objects====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;*Similar to Subtype 1, with a few small exceptions.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Similar to Subtype 1, with a few small exceptions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;*The vram address is calculated the same way. However, {{$|B2}} and {{$|B4}} are not used as length or width dimensions here. The routine that is used is determined as follows:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*The vram address is calculated the same way. However, {{$|B2}} and {{$|B4}} are not used as length or width dimensions here. The routine that is used is determined as follows:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;*Take the original index (times two) that a Subtype 1 would have used. AND that with {{0x|000E}}. Then shift left 3 times to produce {{hex|0000 0000 0}}{{pink|eee}} {{hex|0000}}. Then, OR in {{$|B2}} and {{$|B4}} and shift left once, so the final result is: {{hex|0000 0000}} {{pink|eee}}{{red|a a}}{{blue|bb}}{{hex|0}}.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Take the original index (times two) that a Subtype 1 would have used. AND that with {{0x|000E}}. Then shift left 3 times to produce {{hex|0000 0000 0}}{{pink|eee}} {{hex|0000}}. Then, OR in {{$|B2}} and {{$|B4}} and shift left once, so the final result is: {{hex|0000 0000}} {{pink|eee}}{{red|a a}}{{blue|bb}}{{hex|0}}.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;*Also, this value indexes into {{$|85F0}} instead of {{$|8200}}.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Also, this value indexes into {{$|85F0}} instead of {{$|8200}}.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Type 2 Object Structure: (2 bytes)===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Type 2 Object Structure: (2 bytes)===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tatters</name></author>	</entry>

	<entry>
		<id>http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;diff=27461&amp;oldid=prev</id>
		<title>Tatters: /* Subtype 2 Objects, 1st, 2nd, &amp; 3rd bytes */</title>
		<link rel="alternate" type="text/html" href="http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;diff=27461&amp;oldid=prev"/>
				<updated>2017-12-24T00:20:49Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Subtype 2 Objects, 1st, 2nd, &amp;amp; 3rd bytes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 00:20, 24 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot; &gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Subtype 2 Objects, 1st, 2nd, &amp;amp; 3rd bytes====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Subtype 2 Objects, 1st, 2nd, &amp;amp; 3rd bytes====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;* Byte {{hex|3}}: {{white|ff}}{{purple|dd dddd}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Byte {{hex|3}}: {{white|ff}}{{purple|dd dddd}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;* Byte {{hex|2}}:&amp;#160; {{pink|eeee}} {{green|cccc}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Byte {{hex|2}}:&amp;#160; {{pink|eeee}} {{green|cccc}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;* Byte {{hex|1}}: {{red|aaaa aa}}{{blue|bb}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Byte {{hex|1}}: {{red|aaaa aa}}{{blue|bb}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;**The {{red|a}} bits are unused, but after all they are the marker for this type of object subtype.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**The {{red|a}} bits are unused, but after all they are the marker for this type of object subtype.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;**The {{blue|b}}, {{green|c}}, {{pink|e}}, and {{white|f}} bits are transformed into a VRAM tilemap address: {{hex|000}}{{green|c ccc}}{{white|f}} {{white|f}}{{blue|bb}}{{pink|e eee}}{{hex|0}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;**The {{blue|b}}, {{green|c}}, {{pink|e}}, and {{white|f}} bits are transformed into a VRAM tilemap address: {{hex|000}}{{green|c ccc}}{{white|f}} {{white|f}}{{blue|bb}}{{pink|e eee}}{{hex|0}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Might I add this is one messed up format? The {{purple|d}} bits are used as an index into the table at {{$|8470}}. Since such indices are going to be even, the {{purple|d}} bits are transformed into: {{hex|0000 0000 0}}{{purple|ddd ddd}}{{hex|0}}.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Might I add this is one messed up format? The {{purple|d}} bits are used as an index into the table at {{$|8470}}. Since such indices are going to be even, the {{purple|d}} bits are transformed into: {{hex|0000 0000 0}}{{purple|ddd ddd}}{{hex|0}}.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tatters</name></author>	</entry>

	<entry>
		<id>http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;diff=27460&amp;oldid=prev</id>
		<title>Tatters at 00:19, 24 December 2017</title>
		<link rel="alternate" type="text/html" href="http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;diff=27460&amp;oldid=prev"/>
				<updated>2017-12-24T00:19:58Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 00:19, 24 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{subpage|Underworld:Important Hex Addresses}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{subpage|Underworld:Important Hex Addresses&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;#Object_Data&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Data location==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Data location==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tatters</name></author>	</entry>

	<entry>
		<id>http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;diff=27458&amp;oldid=prev</id>
		<title>Tatters: Created page with &quot;{{subpage|Underworld:Important Hex Addresses}} ==Data location== * {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID. * {{$|01EBA0}} to {...&quot;</title>
		<link rel="alternate" type="text/html" href="http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&amp;diff=27458&amp;oldid=prev"/>
				<updated>2017-12-24T00:17:39Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{subpage|Underworld:Important Hex Addresses}} ==Data location== * {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID. * {{$|01EBA0}} to {...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{subpage|Underworld:Important Hex Addresses}}&lt;br /&gt;
==Data location==&lt;br /&gt;
* {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID.&lt;br /&gt;
* {{$|01EBA0}} to {{$|01FFF4}} = Data&lt;br /&gt;
* {{$|050000}} to {{$|053729}} = Data&lt;br /&gt;
* {{$|0F8780}} to {{$|0FFF4D}} = Data&lt;br /&gt;
&lt;br /&gt;
==Byte layout==&lt;br /&gt;
* Byte 0: {{red|aaaa}} {{blue|bbbb}}. &lt;br /&gt;
**The a bits are transformed to {{red|aaaa}}{{hex|0000}} and select the type of empty space to fill in. Hyrule Magic calls this 'Floor 1' - Gets stored to {{$|7E0490}}&lt;br /&gt;
**The b bits are transformed to {{blue|bbbb}}{{hex|0000}} and are the what Hyrule Magic calls 'Floor 2' - Gets stored to {{$|7E046A}}&lt;br /&gt;
&lt;br /&gt;
* Byte {{hex|1}}: {{red|aaa}}{{blue|b bb}}{{green|c}}{{purple|d}}&lt;br /&gt;
** The {{red|a}} bits are unused and should not be used&lt;br /&gt;
** The {{blue|b}} bits determine the room's layout type, ranging from {{hex|0}} to {{hex|7}}.&lt;br /&gt;
** The {{green|c}} and {{purple|d}} bits are unknown, but I have a feeling it's related to {{$|AA}} and {{$|A9}}&lt;br /&gt;
&lt;br /&gt;
After that the bytes come in {{hex|3}} or {{hex|2}} byte object structures, used by routine {{$|01:88E4}}. Objects are loaded until an object with value {{0x|FFFF}} occurs. If a value {{0x|FFF0}} is loaded, the game will start loading Type 2 objects and will not go back to loading Type 1 objects until it is time to load the next layer. (Layer as in HM, not to be confused with the SNES' Backgrounds.) A value of {{0x|FFFF}} will also terminate the loading of Type 2 objects. The routine immediately terminates if that happens during the loading of either object type.&lt;br /&gt;
&lt;br /&gt;
===Type 1 Object structure: (3 bytes)===&lt;br /&gt;
&lt;br /&gt;
* Byte {{hex|3}}: Routine to use. If this byte is ≥ {{0x|F8}} and &amp;lt; {{0x|FC}}, then it is a subtype 3 object. If the index is ≥ {{hex|FC}}, it is a subtype 2 object. If not, it is a subtype 1 object.&lt;br /&gt;
&lt;br /&gt;
* Subtype 1 Objects, first and second byte&lt;br /&gt;
** High Byte: {{brown|yyyy yy}}{{green|cc}}&lt;br /&gt;
** Low Byte: {{grey|xxxx xx}}{{red|aa}}&lt;br /&gt;
*** The {{red|a}} bits are stored to {{$|B2}}&lt;br /&gt;
*** The {{green|c}} bits are stored to {{$|B4}}&lt;br /&gt;
*** The {{grey|x}} and {{brown|y}} bits are transformed into:  {{hex|000}}{{brown|y yyyy y}}{{grey|xxx xxx}}{{hex|0}} - This is a tilemap address that indexes into {{$|7E2000}} and / or {{$|7E4000}}&lt;br /&gt;
&lt;br /&gt;
Use Byte {{hex|3}} * 2 as an index into the table at {{$|8200}}. This is the routine that is used to draw and otherwise handle the object. Subtype 1 objects have a maximum width and height of 4. Width and height are measured in terms of 32 {{x}} 32 pixels. (⟸ last part is questionable)&lt;br /&gt;
&lt;br /&gt;
====Subtype 2 Objects, 1st, 2nd, &amp;amp; 3rd bytes====&lt;br /&gt;
** Byte {{hex|3}}: {{white|ff}}{{purple|dd dddd}}&lt;br /&gt;
** Byte {{hex|2}}:  {{pink|eeee}} {{green|cccc}}&lt;br /&gt;
** Byte {{hex|1}}: {{red|aaaa aa}}{{blue|bb}}&lt;br /&gt;
***The {{red|a}} bits are unused, but after all they are the marker for this type of object subtype.&lt;br /&gt;
***The {{blue|b}}, {{green|c}}, {{pink|e}}, and {{white|f}} bits are transformed into a VRAM tilemap address: {{hex|000}}{{green|c ccc}}{{white|f}} {{white|f}}{{blue|bb}}{{pink|e eee}}{{hex|0}}&lt;br /&gt;
&lt;br /&gt;
Might I add this is one messed up format? The {{purple|d}} bits are used as an index into the table at {{$|8470}}. Since such indices are going to be even, the {{purple|d}} bits are transformed into: {{hex|0000 0000 0}}{{purple|ddd ddd}}{{hex|0}}.&lt;br /&gt;
&lt;br /&gt;
====Subtype 3 Objects====&lt;br /&gt;
**Similar to Subtype 1, with a few small exceptions.&lt;br /&gt;
**The vram address is calculated the same way. However, {{$|B2}} and {{$|B4}} are not used as length or width dimensions here. The routine that is used is determined as follows:&lt;br /&gt;
**Take the original index (times two) that a Subtype 1 would have used. AND that with {{0x|000E}}. Then shift left 3 times to produce {{hex|0000 0000 0}}{{pink|eee}} {{hex|0000}}. Then, OR in {{$|B2}} and {{$|B4}} and shift left once, so the final result is: {{hex|0000 0000}} {{pink|eee}}{{red|a a}}{{blue|bb}}{{hex|0}}.&lt;br /&gt;
**Also, this value indexes into {{$|85F0}} instead of {{$|8200}}.&lt;br /&gt;
&lt;br /&gt;
===Type 2 Object Structure: (2 bytes)===&lt;br /&gt;
*High Byte: {{green|cccc cccc}} 	&lt;br /&gt;
*Low Byte: {{blue|bbbb}} {{purple|dd}}{{red|aa}}&lt;br /&gt;
**The {{red|a}} bits form a 2-bit value ({{hex|0000 0}}{{red|aa}}{{hex|0}}) that determines the routine to use for the object. In Hyrule Magic, corresponds to the &amp;quot;direction&amp;quot; of the door.&lt;br /&gt;
**The {{blue|b}} bits are transformed into {{hex|000}}{{blue|b bbb}}{{hex|0}} and stored to {{$|02}} ⟹ X. Corresponds to &amp;quot;Pos&amp;quot; of door objects in the Hyrule Magic. Note that these range from {{0x|00}} to {{0x|16}} (always even) which if you halve those values is 0 - 11 in decimal. This is easily verifiable in Hyrule Magic.&lt;br /&gt;
**The {{green|c}} bits are shifted into the lower byte and stored to {{$|04}} ⟹ A and {{$|0A}}. This is later used to grab the tiles used to draw the door and the area below it. In Hyrule Magic, corresponds to &amp;quot;type&amp;quot;. Note the type is 1/2 of the number listed here. This is because to avoid using an ASL A command, the {{green|c}} bits are always even.&lt;br /&gt;
**The {{purple|d}} bits are unused.&lt;br /&gt;
&lt;br /&gt;
Next I'll go into the nitty gritty of the various types (the value of {{$|04}}). Again note that we'll only be dealing with even values {{blue|b}}/{{green|c}} that's what you'll see in the code. To convert between here [as well as the code] and Hyrule Magic, take the hex value here and divide by two. Convert to decimal and that's your Hyrule Magic &amp;quot;type.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Types:	&lt;br /&gt;
{|{{Prettytable}}&lt;br /&gt;
! ID&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|00}}&lt;br /&gt;
|Basic door. Index = {{$|0460}}&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|02}}&lt;br /&gt;
|Normal door?&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|04}}&lt;br /&gt;
|???&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|06}}&lt;br /&gt;
|???&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|08}}&lt;br /&gt;
|Waterfall door (only used in Swamp palace; in one room at that!)&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|0A}}&lt;br /&gt;
|???&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|0C}}&lt;br /&gt;
|Trap door (probably other types but this seems to be most common)&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|12}}&lt;br /&gt;
|Adds a property to some doors allowing you to exit to the overworld (this is accomplished by writing to the tile attribute map)&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|14}}&lt;br /&gt;
|Transition to dark room?&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|16}}&lt;br /&gt;
|Toggles the target BG Link will emerge on. '''Ex.''' if Link starts on BG0 in the next room he'll be on BG1.&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|20}}&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;|Locked door specifically for BG0.&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|22}}&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|24}}&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;|Locked door for either BG0 or BG1&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|26}}&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|30}}&lt;br /&gt;
|Large exploded pathway resulting from a switch being pulled (unusual to have as a door as it's huge)&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|32}}&lt;br /&gt;
|Sword activated door. '''Ex.''' Agahnim's room with the curtain door you have to slash.&lt;br /&gt;
|-&lt;br /&gt;
|{{0x|46}}&lt;br /&gt;
|warp door?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{toc}}&lt;/div&gt;</summary>
		<author><name>Tatters</name></author>	</entry>

	</feed>