<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tww/include/d/d_tree.h, branch main</title>
<subtitle>Decompilation of The Legend of Zelda: The Wind Waker (GCN)</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/'/>
<entry>
<title>Match most d_flower funcs for demo</title>
<updated>2026-07-05T21:23:02+00:00</updated>
<author>
<name>LagoLunatic</name>
<email>LagoLunatic@users.noreply.github.com</email>
</author>
<published>2026-07-05T21:23:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=87b5061c61d85d66a7b700c8670bb37d9920332f'/>
<id>87b5061c61d85d66a7b700c8670bb37d9920332f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dMinigame_Starter_c::_execute match</title>
<updated>2026-06-28T22:53:19+00:00</updated>
<author>
<name>LagoLunatic</name>
<email>LagoLunatic@users.noreply.github.com</email>
</author>
<published>2026-06-28T22:53:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=0bb5696cd89ce890b4543da9f46c2053ce6aec03'/>
<id>0bb5696cd89ce890b4543da9f46c2053ce6aec03</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>d_tree OK for retail</title>
<updated>2026-06-26T22:53:07+00:00</updated>
<author>
<name>LagoLunatic</name>
<email>LagoLunatic@users.noreply.github.com</email>
</author>
<published>2026-06-26T22:53:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=ad26698232420b38c285668b2674f59343030a77'/>
<id>ad26698232420b38c285668b2674f59343030a77</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>tree (#1067)</title>
<updated>2026-06-26T20:57:14+00:00</updated>
<author>
<name>TakaRikka</name>
<email>38417346+TakaRikka@users.noreply.github.com</email>
</author>
<published>2026-06-26T20:57:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=2f03544e17a88c5e173c2b527124e3ace08b95bb'/>
<id>2f03544e17a88c5e173c2b527124e3ace08b95bb</id>
<content type='text'>
* tree

* WorkCo fix from superdude</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* tree

* WorkCo fix from superdude</pre>
</div>
</content>
</entry>
<entry>
<title>clean up d_wood and d_tree data, match d_wood on JPN, match rest of d_tree .data section</title>
<updated>2024-10-31T22:43:53+00:00</updated>
<author>
<name>LagoLunatic</name>
<email>LagoLunatic@users.noreply.github.com</email>
</author>
<published>2024-10-31T22:43:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=2dfcdd84abef6c1cfe8950304c7a0cc6aca239ba'/>
<id>2dfcdd84abef6c1cfe8950304c7a0cc6aca239ba</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>d_wood (bushes) matching (#682)</title>
<updated>2024-10-31T20:58:37+00:00</updated>
<author>
<name>Mike Lester</name>
<email>themikelester@gmail.com</email>
</author>
<published>2024-10-31T20:58:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=64cc277d055439456e926e294fc131d91685b6ff'/>
<id>64cc277d055439456e926e294fc131d91685b6ff</id>
<content type='text'>
* d_wood (bushes) 73% matching

* d_wood::Unit_c::set_ground 100% match

Jasper pointed me to the fact that the complicated inv_sqrt function I wrote was indeed just std::sqrtf(), which unlocked the rest of the match

* Replace some bitshifts with multiplies based on PR feedback

* Remove all instances of "this-&gt;" from d_wood

* Add missing struct offset comment for mTevStr

* Cleaned up d_tree externs

* Use MTXIdentity instead of PSMTXIdentity

* Remove incorrect TODO rearding cCcD_ObjAtType enum

* Use the mDoAud_seStart inline function

* Remove unnecessary parenthesis

* Fix incorrect branching logic in d_wood::cc_hit_before_cut()

* d_wood data sections fixup

* Re-add "Nonmatching" comments to all nonmatching functions

* Formatting: reformat from 2 to 4 space indentation

This was a local system problem which slipped by me in a previous commit

* 100% match for d_wood::Anm_c::mode_norm()

Thanks Chippy! https://discord.com/channels/727908905392275526/873250400483024976/1298360716964790294

* Use cLib_*Bit() functions for flag checking and setting

Based on the inline functions from the .map

* d_wood: Use AnmID_e according to the .map file

* d_wood: add a couple AnmID_e related inlines from the .map

* d_wood: Name remaining unknowns related to animation

* d_wood: Match cc_hit_before_cut()

* d_wood: Match calc_cc() by using the dComIfGp_roomControl_getStayNo() inline

* d_wood: Match string table and search_anm() by using a constant in assert string

* d_wood: Match mode_to_norm()

Switching normAnim to a const* did most of the work

* d_wood: 100% match for L_attr and the .rodata section

* d_wood: Fill in .data section. Still some extra data from vtables

* d_wood: Match .sbss section

* d_wood: Match .sdata section

* d_wood: 98% match for Packet_c::draw()

The only error is that g_dTree_shadowTexCoord is still using a 32-bit load instead of 16. the only way I know of to fix that is to define the data in this compilation unit. But that can't be right

* d_wood: Various small formatting changes

- No one line function implementations
- Replaced instances of (SomeType*)0x0 (copy/pasted from Ghidra) with NULL
- Replaced a few instances of 0.0 with 0.0f
- Replaced one instance where a number was used instead of an enum value

* d_wood: More formatting fixes

- Removed unused variables from functions
- Removed unnecessary iVar1 loop variables (leftover Ghidra detritus)
- Fixed dtk function comments being wrapped by autoformatter. They now always appear on one line

* d_tree: 100% match of data which is used by d_wood

This moves g_dTree_shadowTexCoord into .sdata which allows d_wood::Packet_c::draw() to load its address with a single instruction. This  makes a 100% match for draw()

* d_wood: Removed unnecessary comment now that draw() matches

g_dTree_shadowTexCoord now lives in the d_tree .sdata section, so its instruction can be loaded with a single instruction. This makes a 100% match with draw().

* d_wood: 100% match for mode_cut()

* d_wood: Match mode_push_into()

Also renamed mWindDir to mForceDir as it represents both wind and an actor pushing from a vector

* d_wood: Match mode_push_back

* d_wood: Match __sinit_d_wood_cpp

The l_matDL display list is dynamically patched to reference the l_Txa_swood_bTEX texture at static initialization time. Is there a better way to represent this?

* d_wood: Fix incorrect constant in set_ground()

* d_wood: Simplify dummy data at the top of .data section

* d_wood: Mark as matching in configure.py

Had to move Packet_c destructor to get the functions in the right order. See discussion: https://discord.com/channels/727908905392275526/873250400483024976/1300680009458913280

* d_wood: Add `d/d_cc_d.h` include as some enums have moved

* d_wood: Clean up some types at the top

* Mark d_wood as non-matching for the Japanese version</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* d_wood (bushes) 73% matching

* d_wood::Unit_c::set_ground 100% match

Jasper pointed me to the fact that the complicated inv_sqrt function I wrote was indeed just std::sqrtf(), which unlocked the rest of the match

* Replace some bitshifts with multiplies based on PR feedback

* Remove all instances of "this-&gt;" from d_wood

* Add missing struct offset comment for mTevStr

* Cleaned up d_tree externs

* Use MTXIdentity instead of PSMTXIdentity

* Remove incorrect TODO rearding cCcD_ObjAtType enum

* Use the mDoAud_seStart inline function

* Remove unnecessary parenthesis

* Fix incorrect branching logic in d_wood::cc_hit_before_cut()

* d_wood data sections fixup

* Re-add "Nonmatching" comments to all nonmatching functions

* Formatting: reformat from 2 to 4 space indentation

This was a local system problem which slipped by me in a previous commit

* 100% match for d_wood::Anm_c::mode_norm()

Thanks Chippy! https://discord.com/channels/727908905392275526/873250400483024976/1298360716964790294

* Use cLib_*Bit() functions for flag checking and setting

Based on the inline functions from the .map

* d_wood: Use AnmID_e according to the .map file

* d_wood: add a couple AnmID_e related inlines from the .map

* d_wood: Name remaining unknowns related to animation

* d_wood: Match cc_hit_before_cut()

* d_wood: Match calc_cc() by using the dComIfGp_roomControl_getStayNo() inline

* d_wood: Match string table and search_anm() by using a constant in assert string

* d_wood: Match mode_to_norm()

Switching normAnim to a const* did most of the work

* d_wood: 100% match for L_attr and the .rodata section

* d_wood: Fill in .data section. Still some extra data from vtables

* d_wood: Match .sbss section

* d_wood: Match .sdata section

* d_wood: 98% match for Packet_c::draw()

The only error is that g_dTree_shadowTexCoord is still using a 32-bit load instead of 16. the only way I know of to fix that is to define the data in this compilation unit. But that can't be right

* d_wood: Various small formatting changes

- No one line function implementations
- Replaced instances of (SomeType*)0x0 (copy/pasted from Ghidra) with NULL
- Replaced a few instances of 0.0 with 0.0f
- Replaced one instance where a number was used instead of an enum value

* d_wood: More formatting fixes

- Removed unused variables from functions
- Removed unnecessary iVar1 loop variables (leftover Ghidra detritus)
- Fixed dtk function comments being wrapped by autoformatter. They now always appear on one line

* d_tree: 100% match of data which is used by d_wood

This moves g_dTree_shadowTexCoord into .sdata which allows d_wood::Packet_c::draw() to load its address with a single instruction. This  makes a 100% match for draw()

* d_wood: Removed unnecessary comment now that draw() matches

g_dTree_shadowTexCoord now lives in the d_tree .sdata section, so its instruction can be loaded with a single instruction. This makes a 100% match with draw().

* d_wood: 100% match for mode_cut()

* d_wood: Match mode_push_into()

Also renamed mWindDir to mForceDir as it represents both wind and an actor pushing from a vector

* d_wood: Match mode_push_back

* d_wood: Match __sinit_d_wood_cpp

The l_matDL display list is dynamically patched to reference the l_Txa_swood_bTEX texture at static initialization time. Is there a better way to represent this?

* d_wood: Fix incorrect constant in set_ground()

* d_wood: Simplify dummy data at the top of .data section

* d_wood: Mark as matching in configure.py

Had to move Packet_c destructor to get the functions in the right order. See discussion: https://discord.com/channels/727908905392275526/873250400483024976/1300680009458913280

* d_wood: Add `d/d_cc_d.h` include as some enums have moved

* d_wood: Clean up some types at the top

* Mark d_wood as non-matching for the Japanese version</pre>
</div>
</content>
</entry>
<entry>
<title>make more TUs compile</title>
<updated>2023-12-21T03:04:09+00:00</updated>
<author>
<name>Jcw87</name>
<email>Jcw87@users.noreply.github.com</email>
</author>
<published>2023-12-18T03:24:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=8eda1d418d4c86669a14ad9a0cfe85583fa1d551'/>
<id>8eda1d418d4c86669a14ad9a0cfe85583fa1d551</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>d_a_bg 90%</title>
<updated>2023-10-21T22:43:26+00:00</updated>
<author>
<name>Jasper St. Pierre</name>
<email>jstpierre@mecheye.net</email>
</author>
<published>2023-10-21T22:43:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=1dd6f60fe6b0eee0e16c24fa91cfe1e100671c88'/>
<id>1dd6f60fe6b0eee0e16c24fa91cfe1e100671c88</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>work on m_Do_audio and d_com_inf_game (#18)</title>
<updated>2023-09-12T10:14:40+00:00</updated>
<author>
<name>TakaRikka</name>
<email>38417346+TakaRikka@users.noreply.github.com</email>
</author>
<published>2023-09-12T10:14:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=85b77c336ba7672a9ebb5bb276d78f06d9f25b00'/>
<id>85b77c336ba7672a9ebb5bb276d78f06d9f25b00</id>
<content type='text'>
* fix float issues and add decompctx.py tool

* work on m_Do_audio and d_com_inf_game

* fix build</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* fix float issues and add decompctx.py tool

* work on m_Do_audio and d_com_inf_game

* fix build</pre>
</div>
</content>
</entry>
<entry>
<title>most of d_com_inf_game.cpp done</title>
<updated>2023-09-11T10:45:33+00:00</updated>
<author>
<name>TakaRikka</name>
<email>takarikka@outlook.com</email>
</author>
<published>2023-09-11T10:45:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tww/commit/?id=c65210d22ff774f8c43b2caf0d9999be31b7d52c'/>
<id>c65210d22ff774f8c43b2caf0d9999be31b7d52c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
