<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tp/include/JSystem, branch main</title>
<subtitle>Decompilation of The Legend of Zelda: Twilight Princess (GCN)</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/'/>
<entry>
<title>Reorganize library code into `libs/` (#3119)</title>
<updated>2026-03-01T22:35:36+00:00</updated>
<author>
<name>Luke Street</name>
<email>luke@street.dev</email>
</author>
<published>2026-03-01T22:35:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=9649319ec4926457ef85e6094f8207474c977c2d'/>
<id>9649319ec4926457ef85e6094f8207474c977c2d</id>
<content type='text'>
* Reorganize files into libs/{dolphin,JSystem,PowerPC_EABI_Support,revolution,TRK_MINNOW_DOLPHIN}

* Update configure.py and project.py for new libs structure

* Refactor `#include &lt;dolphin/x.h&gt;` -&gt; `&lt;x.h&gt;`

* Remove `__REVOLUTION_SDK__` forwards from dolphin

* Fix dolphin/ references in revolution

* Wrap `#include &lt;dolphin.h&gt;` in `!__REVOLUTION_SDK__`

* Always build TRK against dolphin headers

* Resolve revolution SDK header resolution issues</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Reorganize files into libs/{dolphin,JSystem,PowerPC_EABI_Support,revolution,TRK_MINNOW_DOLPHIN}

* Update configure.py and project.py for new libs structure

* Refactor `#include &lt;dolphin/x.h&gt;` -&gt; `&lt;x.h&gt;`

* Remove `__REVOLUTION_SDK__` forwards from dolphin

* Fix dolphin/ references in revolution

* Wrap `#include &lt;dolphin.h&gt;` in `!__REVOLUTION_SDK__`

* Always build TRK against dolphin headers

* Resolve revolution SDK header resolution issues</pre>
</div>
</content>
</entry>
<entry>
<title>d_s_logo / d_s_play debug work, d_a_kago cleanup, misc cleanup (#3116)</title>
<updated>2026-03-01T21:19:48+00:00</updated>
<author>
<name>TakaRikka</name>
<email>38417346+TakaRikka@users.noreply.github.com</email>
</author>
<published>2026-03-01T21:19:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=6e149819e13b1f70ecbf8a4c66b030c17ffed2bb'/>
<id>6e149819e13b1f70ecbf8a4c66b030c17ffed2bb</id>
<content type='text'>
* d_a_kago cleanup

* d_s_logo wii/shield work

* d_s_logo / d_s_play debug work

* fix missing profile class sizeof's

* fix phase-&gt;id values

* build fixes

* fix dCamera_c and camera profile</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* d_a_kago cleanup

* d_s_logo wii/shield work

* d_s_logo / d_s_play debug work

* fix missing profile class sizeof's

* fix phase-&gt;id values

* build fixes

* fix dCamera_c and camera profile</pre>
</div>
</content>
</entry>
<entry>
<title>More GCC compatibility/warning fixes (#3118)</title>
<updated>2026-03-01T04:19:17+00:00</updated>
<author>
<name>Luke Street</name>
<email>luke@street.dev</email>
</author>
<published>2026-03-01T04:19:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=6a48380461bc9baabe1706ba57ca0cedfa2d0c51'/>
<id>6a48380461bc9baabe1706ba57ca0cedfa2d0c51</id>
<content type='text'>
* Wrap &gt;4-char literals in a MULTI_CHAR macro

Modern compilers do not support CW's non-standard behavior with
&gt;4 char literals. We can, however, use a constexpr function to
compute the u64 values directly. This leaves &lt;=4 char literals
unchanged.

* Replace non-pointer usages of NULL with 0

* Define NULL to nullptr on C++11 and above

* Fix more -Wpointer-arith and -Woverflow warnings

* Replace u32/s32 with uintptr_t/intptr_t where appropriate

* JSUOutputStream: Overload all standard int types</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Wrap &gt;4-char literals in a MULTI_CHAR macro

Modern compilers do not support CW's non-standard behavior with
&gt;4 char literals. We can, however, use a constexpr function to
compute the u64 values directly. This leaves &lt;=4 char literals
unchanged.

* Replace non-pointer usages of NULL with 0

* Define NULL to nullptr on C++11 and above

* Fix more -Wpointer-arith and -Woverflow warnings

* Replace u32/s32 with uintptr_t/intptr_t where appropriate

* JSUOutputStream: Overload all standard int types</pre>
</div>
</content>
</entry>
<entry>
<title>Another round of GCC fixes (#3115)</title>
<updated>2026-02-28T21:35:07+00:00</updated>
<author>
<name>Luke Street</name>
<email>luke@street.dev</email>
</author>
<published>2026-02-28T21:35:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=b5d3b8c059c10711370437f7db7539cd90f1cb29'/>
<id>b5d3b8c059c10711370437f7db7539cd90f1cb29</id>
<content type='text'>
* Fix remaining &lt;string&gt; -&gt; &lt;cstring&gt; for GCC compilation (#3114 follow-up)

MWerks' &lt;string&gt; header transitively includes C string functions
(memcpy, strlen, strcmp, etc.), but GCC/Clang's &lt;string&gt; is the C++
std::string header. These files all use C string functions and should
include &lt;cstring&gt; instead.

* Use std::isnan instead of isnan for GCC compilation

GCC's &lt;cmath&gt; places isnan in the std namespace. Using the unqualified
isnan fails to compile with GCC/Clang.

* Fix cCcD_Src types: s32 -&gt; u32 for bitmask fields

cCcD_SrcObjCommonBase::mSPrm, cCcD_SrcObjTg::mType, and
cCcD_SrcObjAt::mType are used as bitmasks (SetType/SetSPrm take u32,
MskType/MskSPrm use u32, values like 0xFFFFFFFF are common in
aggregate inits). Change from s32 to u32 to match usage.

Also fix AT_TYPE_WOLF_ATTACK/AT_TYPE_UNK to use unsigned literals,
and remove now-unnecessary (s32) casts on hex literals in collision
source data.

* Mark dummy() functions as static to avoid multiple definition errors

These decomp artifact functions have the same name and signature across
TUs, causing linker errors when building as a single binary.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix remaining &lt;string&gt; -&gt; &lt;cstring&gt; for GCC compilation (#3114 follow-up)

MWerks' &lt;string&gt; header transitively includes C string functions
(memcpy, strlen, strcmp, etc.), but GCC/Clang's &lt;string&gt; is the C++
std::string header. These files all use C string functions and should
include &lt;cstring&gt; instead.

* Use std::isnan instead of isnan for GCC compilation

GCC's &lt;cmath&gt; places isnan in the std namespace. Using the unqualified
isnan fails to compile with GCC/Clang.

* Fix cCcD_Src types: s32 -&gt; u32 for bitmask fields

cCcD_SrcObjCommonBase::mSPrm, cCcD_SrcObjTg::mType, and
cCcD_SrcObjAt::mType are used as bitmasks (SetType/SetSPrm take u32,
MskType/MskSPrm use u32, values like 0xFFFFFFFF are common in
aggregate inits). Change from s32 to u32 to match usage.

Also fix AT_TYPE_WOLF_ATTACK/AT_TYPE_UNK to use unsigned literals,
and remove now-unnecessary (s32) casts on hex literals in collision
source data.

* Mark dummy() functions as static to avoid multiple definition errors

These decomp artifact functions have the same name and signature across
TUs, causing linker errors when building as a single binary.</pre>
</div>
</content>
</entry>
<entry>
<title>Some GCC compilation fixes (#3114)</title>
<updated>2026-02-28T20:11:00+00:00</updated>
<author>
<name>Luke Street</name>
<email>luke@street.dev</email>
</author>
<published>2026-02-28T20:11:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=c900a043b89786d5e594ec883d9acd92e0db6bc7'/>
<id>c900a043b89786d5e594ec883d9acd92e0db6bc7</id>
<content type='text'>
* Fix 6-byte multichar literals

* Add `struct` to `e_ga_class::ga_s`

* Fix remaining wrong forward declares (struct/class)

* Replace `#include &lt;string&gt;` with `#include &lt;cstring&gt;`

* Guard FLT_EPSILON define to prevent redefinition

* Add missing `#include &lt;cstring&gt;` for direct cstring function usage</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix 6-byte multichar literals

* Add `struct` to `e_ga_class::ga_s`

* Fix remaining wrong forward declares (struct/class)

* Replace `#include &lt;string&gt;` with `#include &lt;cstring&gt;`

* Guard FLT_EPSILON define to prevent redefinition

* Add missing `#include &lt;cstring&gt;` for direct cstring function usage</pre>
</div>
</content>
</entry>
<entry>
<title>Fix broken J3DTexture assert (#3111)</title>
<updated>2026-02-25T22:06:37+00:00</updated>
<author>
<name>Pieter-Jan Briers</name>
<email>pieterjan.briers+git@gmail.com</email>
</author>
<published>2026-02-25T22:06:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=a096caa8deaab245402c56dd5d54bfe4a0bbe2e5'/>
<id>a096caa8deaab245402c56dd5d54bfe4a0bbe2e5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix MORE wrong forward declares (struct/class) (#3110)</title>
<updated>2026-02-24T22:20:45+00:00</updated>
<author>
<name>Pieter-Jan Briers</name>
<email>pieterjan.briers+git@gmail.com</email>
</author>
<published>2026-02-24T22:20:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=f54661f878732696679ab6925efd1c1c95fde76d'/>
<id>f54661f878732696679ab6925efd1c1c95fde76d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix JASGlobalInstance instance definitions (#3108)</title>
<updated>2026-02-23T19:17:37+00:00</updated>
<author>
<name>Pieter-Jan Briers</name>
<email>pieterjan.briers@gmail.com</email>
</author>
<published>2026-02-23T19:17:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=96ffd91c9a2cd145c0a40fb05de47af695fa6ffb'/>
<id>96ffd91c9a2cd145c0a40fb05de47af695fa6ffb</id>
<content type='text'>
There are a few places where JASGlobalInstance have their sInstance storage implemented via template specialization. The problem is that these have no initializer, which means that they are not proper definitions (only declarations) in standards-compliant C++. MSVC and (evidently) MWCC accept this, but modern Clang and GCC do not and won't emit symbols.

I've added a macro that properly initializes these outside MWCC.

Also, JASGlobalInstance&lt;JAUSectionHeap&gt; was only being declared in each actor file that used it, which sounds incorrect? Not sure about this but I added it to m_Do_main too, again behind MWERKS check.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are a few places where JASGlobalInstance have their sInstance storage implemented via template specialization. The problem is that these have no initializer, which means that they are not proper definitions (only declarations) in standards-compliant C++. MSVC and (evidently) MWCC accept this, but modern Clang and GCC do not and won't emit symbols.

I've added a macro that properly initializes these outside MWCC.

Also, JASGlobalInstance&lt;JAUSectionHeap&gt; was only being declared in each actor file that used it, which sounds incorrect? Not sure about this but I added it to m_Do_main too, again behind MWERKS check.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix incorrect forward declare keywords (#3107)</title>
<updated>2026-02-23T19:13:00+00:00</updated>
<author>
<name>Pieter-Jan Briers</name>
<email>pieterjan.briers@gmail.com</email>
</author>
<published>2026-02-23T19:13:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=59fd9f387a96f7b5975b867a50582d45f730a445'/>
<id>59fd9f387a96f7b5975b867a50582d45f730a445</id>
<content type='text'>
Mixups of class/struct keyword in forward declares. Doesn't seem to matter on MWCC, but causes name mangling mismatching on modern platforms.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mixups of class/struct keyword in forward declares. Doesn't seem to matter on MWCC, but causes name mangling mismatching on modern platforms.</pre>
</div>
</content>
</entry>
<entry>
<title>d_resorce debug (#3105)</title>
<updated>2026-02-20T11:05:23+00:00</updated>
<author>
<name>Jcw87</name>
<email>Jcw87@users.noreply.github.com</email>
</author>
<published>2026-02-20T11:05:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/tp/commit/?id=2113d9044b9beb0fedca17f977f2bb571c50c302'/>
<id>2113d9044b9beb0fedca17f977f2bb571c50c302</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
