http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&feed=atom&action=historyUnderworld:Important Hex Addresses/Object Data - Revision history2024-03-28T21:07:02ZRevision history for this page on the wikiMediaWiki 1.28.0http://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&diff=27462&oldid=prevTatters: /* Subtype 3 Objects */2017-12-24T00:21:11Z<p><span dir="auto"><span class="autocomment">Subtype 3 Objects</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:21, 24 December 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l41" >Line 41:</td>
<td colspan="2" class="diff-lineno">Line 41:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>====Subtype 3 Objects====</div></td><td class='diff-marker'> </td><td style="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;"><div>====Subtype 3 Objects====</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>*Similar to Subtype 1, with a few small exceptions.</div></td><td class='diff-marker'>+</td><td style="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;"><div>*Similar to Subtype 1, with a few small exceptions.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>*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:</div></td><td class='diff-marker'>+</td><td style="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;"><div>*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:</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>*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}}.</div></td><td class='diff-marker'>+</td><td style="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;"><div>*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}}.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>*Also, this value indexes into {{$|85F0}} instead of {{$|8200}}.</div></td><td class='diff-marker'>+</td><td style="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;"><div>*Also, this value indexes into {{$|85F0}} instead of {{$|8200}}.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>===Type 2 Object Structure: (2 bytes)===</div></td><td class='diff-marker'> </td><td style="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;"><div>===Type 2 Object Structure: (2 bytes)===</div></td></tr>
</table>Tattershttp://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&diff=27461&oldid=prevTatters: /* Subtype 2 Objects, 1st, 2nd, & 3rd bytes */2017-12-24T00:20:49Z<p><span dir="auto"><span class="autocomment">Subtype 2 Objects, 1st, 2nd, & 3rd bytes</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:20, 24 December 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l32" >Line 32:</td>
<td colspan="2" class="diff-lineno">Line 32:</td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>====Subtype 2 Objects, 1st, 2nd, & 3rd bytes====</div></td><td class='diff-marker'> </td><td style="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;"><div>====Subtype 2 Objects, 1st, 2nd, & 3rd bytes====</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>* Byte {{hex|3}}: {{white|ff}}{{purple|dd dddd}}</div></td><td class='diff-marker'>+</td><td style="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;"><div>* Byte {{hex|3}}: {{white|ff}}{{purple|dd dddd}}</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>* Byte {{hex|2}}:  {{pink|eeee}} {{green|cccc}}</div></td><td class='diff-marker'>+</td><td style="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;"><div>* Byte {{hex|2}}:  {{pink|eeee}} {{green|cccc}}</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>* Byte {{hex|1}}: {{red|aaaa aa}}{{blue|bb}}</div></td><td class='diff-marker'>+</td><td style="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;"><div>* Byte {{hex|1}}: {{red|aaaa aa}}{{blue|bb}}</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>**The {{red|a}} bits are unused, but after all they are the marker for this type of object subtype.</div></td><td class='diff-marker'>+</td><td style="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;"><div>**The {{red|a}} bits are unused, but after all they are the marker for this type of object subtype.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div><del class="diffchange diffchange-inline">*</del>**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}}</div></td><td class='diff-marker'>+</td><td style="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;"><div>**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}}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"></td><td class='diff-marker'> </td><td style="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;"></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>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}}.</div></td><td class='diff-marker'> </td><td style="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;"><div>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}}.</div></td></tr>
</table>Tattershttp://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&diff=27460&oldid=prevTatters at 00:19, 24 December 20172017-12-24T00:19:58Z<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='en'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:19, 24 December 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="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;"><div>{{subpage|Underworld:Important Hex Addresses}}</div></td><td class='diff-marker'>+</td><td style="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;"><div>{{subpage|Underworld:Important Hex Addresses<ins class="diffchange diffchange-inline">#Object_Data</ins>}}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>==Data location==</div></td><td class='diff-marker'> </td><td style="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;"><div>==Data location==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="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;"><div>* {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID.</div></td><td class='diff-marker'> </td><td style="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;"><div>* {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID.</div></td></tr>
</table>Tattershttp://alttp.run/hacking/index.php?title=Underworld:Important_Hex_Addresses/Object_Data&diff=27458&oldid=prevTatters: Created page with "{{subpage|Underworld:Important Hex Addresses}} ==Data location== * {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID. * {{$|01EBA0}} to {..."2017-12-24T00:17:39Z<p>Created page with "{{subpage|Underworld:Important Hex Addresses}} ==Data location== * {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID. * {{$|01EBA0}} to {..."</p>
<p><b>New page</b></p><div>{{subpage|Underworld:Important Hex Addresses}}<br />
==Data location==<br />
* {{$|0F8000}} to {{$|0F83BF}} = Pointer Table, 3 byte long addresses, indexed by room ID.<br />
* {{$|01EBA0}} to {{$|01FFF4}} = Data<br />
* {{$|050000}} to {{$|053729}} = Data<br />
* {{$|0F8780}} to {{$|0FFF4D}} = Data<br />
<br />
==Byte layout==<br />
* Byte 0: {{red|aaaa}} {{blue|bbbb}}. <br />
**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}}<br />
**The b bits are transformed to {{blue|bbbb}}{{hex|0000}} and are the what Hyrule Magic calls 'Floor 2' - Gets stored to {{$|7E046A}}<br />
<br />
* Byte {{hex|1}}: {{red|aaa}}{{blue|b bb}}{{green|c}}{{purple|d}}<br />
** The {{red|a}} bits are unused and should not be used<br />
** The {{blue|b}} bits determine the room's layout type, ranging from {{hex|0}} to {{hex|7}}.<br />
** The {{green|c}} and {{purple|d}} bits are unknown, but I have a feeling it's related to {{$|AA}} and {{$|A9}}<br />
<br />
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.<br />
<br />
===Type 1 Object structure: (3 bytes)===<br />
<br />
* Byte {{hex|3}}: Routine to use. If this byte is ≥ {{0x|F8}} and < {{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.<br />
<br />
* Subtype 1 Objects, first and second byte<br />
** High Byte: {{brown|yyyy yy}}{{green|cc}}<br />
** Low Byte: {{grey|xxxx xx}}{{red|aa}}<br />
*** The {{red|a}} bits are stored to {{$|B2}}<br />
*** The {{green|c}} bits are stored to {{$|B4}}<br />
*** 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}}<br />
<br />
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)<br />
<br />
====Subtype 2 Objects, 1st, 2nd, & 3rd bytes====<br />
** Byte {{hex|3}}: {{white|ff}}{{purple|dd dddd}}<br />
** Byte {{hex|2}}: {{pink|eeee}} {{green|cccc}}<br />
** Byte {{hex|1}}: {{red|aaaa aa}}{{blue|bb}}<br />
***The {{red|a}} bits are unused, but after all they are the marker for this type of object subtype.<br />
***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}}<br />
<br />
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}}.<br />
<br />
====Subtype 3 Objects====<br />
**Similar to Subtype 1, with a few small exceptions.<br />
**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:<br />
**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}}.<br />
**Also, this value indexes into {{$|85F0}} instead of {{$|8200}}.<br />
<br />
===Type 2 Object Structure: (2 bytes)===<br />
*High Byte: {{green|cccc cccc}} <br />
*Low Byte: {{blue|bbbb}} {{purple|dd}}{{red|aa}}<br />
**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 "direction" of the door.<br />
**The {{blue|b}} bits are transformed into {{hex|000}}{{blue|b bbb}}{{hex|0}} and stored to {{$|02}} ⟹ X. Corresponds to "Pos" 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.<br />
**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 "type". 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.<br />
**The {{purple|d}} bits are unused.<br />
<br />
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 "type."<br />
<br />
*Types: <br />
{|{{Prettytable}}<br />
! ID<br />
! Description<br />
|-<br />
|{{0x|00}}<br />
|Basic door. Index = {{$|0460}}<br />
|-<br />
|{{0x|02}}<br />
|Normal door?<br />
|-<br />
|{{0x|04}}<br />
|???<br />
|-<br />
|{{0x|06}}<br />
|???<br />
|-<br />
|{{0x|08}}<br />
|Waterfall door (only used in Swamp palace; in one room at that!)<br />
|-<br />
|{{0x|0A}}<br />
|???<br />
|-<br />
|{{0x|0C}}<br />
|Trap door (probably other types but this seems to be most common)<br />
|-<br />
|{{0x|12}}<br />
|Adds a property to some doors allowing you to exit to the overworld (this is accomplished by writing to the tile attribute map)<br />
|-<br />
|{{0x|14}}<br />
|Transition to dark room?<br />
|-<br />
|{{0x|16}}<br />
|Toggles the target BG Link will emerge on. '''Ex.''' if Link starts on BG0 in the next room he'll be on BG1.<br />
|-<br />
|{{0x|20}}<br />
| rowspan="2"|Locked door specifically for BG0.<br />
|-<br />
|{{0x|22}}<br />
|-<br />
|{{0x|24}}<br />
| rowspan="2"|Locked door for either BG0 or BG1<br />
|-<br />
|{{0x|26}}<br />
|-<br />
|{{0x|30}}<br />
|Large exploded pathway resulting from a switch being pulled (unusual to have as a door as it's huge)<br />
|-<br />
|{{0x|32}}<br />
|Sword activated door. '''Ex.''' Agahnim's room with the curtain door you have to slash.<br />
|-<br />
|{{0x|46}}<br />
|warp door?<br />
|}<br />
<br />
{{toc}}</div>Tatters