<feed xmlns='http://www.w3.org/2005/Atom'>
<title>botw/src/KingSystem/Physics, branch master</title>
<subtitle>Decompilation of The Legend of Zelda: Breath of the Wild (Switch v1.5.0)</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/'/>
<entry>
<title>ksys/phys: move motionTypeFromText to physUtil</title>
<updated>2026-10-15T23:18:41+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-15T23:18:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=ef164cc8aac3a4d1729d3cbf722dec9b30a0c147'/>
<id>ef164cc8aac3a4d1729d3cbf722dec9b30a0c147</id>
<content type='text'>
motionTypeFromText isn't part of physDefines: its "Keyframed" string
(only used there) sits between the StaticCompound and PlayReport strings
in .rodata, far from physDefines' enum text, and the function is linked
right after the contact listener's inline virtuals, so it most likely
starts a new TU at 0x7100fd069c.

Nothing separates it from getMaterialMaskFromShape and the other helpers
in physUtil, so it goes in the same file and its declaration moves to
physUtil.h. That part is a guess: neither function has data that would
show a boundary.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
motionTypeFromText isn't part of physDefines: its "Keyframed" string
(only used there) sits between the StaticCompound and PlayReport strings
in .rodata, far from physDefines' enum text, and the function is linked
right after the contact listener's inline virtuals, so it most likely
starts a new TU at 0x7100fd069c.

Nothing separates it from getMaterialMaskFromShape and the other helpers
in physUtil, so it goes in the same file and its declaration moves to
physUtil.h. That part is a guess: neither function has data that would
show a boundary.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/phys: rename physStaticCompoundUtil to physUtil</title>
<updated>2026-10-16T15:51:17+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-16T15:51:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=7286390beae272d1f8201e45ecf725d75241a84d'/>
<id>7286390beae272d1f8201e45ecf725d75241a84d</id>
<content type='text'>
Most of these helpers have nothing to do with StaticCompound: they look
up material masks and collision filter info from shapes and collidables.
physUtil also fits the link order, between physUserTag and physWorld,
and it's what the function groups already call this block.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of these helpers have nothing to do with StaticCompound: they look
up material masks and collision filter info from shapes and collidables.
physUtil also fits the link order, between physUserTag and physWorld,
and it's what the function groups already call this block.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/phys: rearrange the folder layout to match link order</title>
<updated>2026-10-13T00:55:29+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-09-28T01:39:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=89322a8d0cb0c1aaab509ab653a9368a2ae5dea9'/>
<id>89322a8d0cb0c1aaab509ab653a9368a2ae5dea9</id>
<content type='text'>
A folder's files are linked before its subfolders, and the rigid body
files are linked as one flat sequence. ListShape is the one file that
does not fit this order.

| Old | New |
|---|---|
| RigidBody/Shape/&lt;Kind&gt;/phys&lt;Kind&gt;Shape.cpp | RigidBody/Shape/phys&lt;Kind&gt;Shape.cpp |
| RigidBody/Shape/&lt;Kind&gt;/phys&lt;Kind&gt;RigidBody.cpp | RigidBody/physRigidBody&lt;Kind&gt;.cpp |
| RigidBody/Shape/List/physListShapeRigidBody.cpp | RigidBody/physRigidBodyListShape.cpp |
| physHavokMemoryAllocator.cpp | System/physHavokMemoryAllocator.cpp |
| StaticCompound/physStaticCompound{,Mgr,RigidBodyGroup,Util}.cpp | System/ |
| StaticCompound/physStaticCompound{Info,Autogen}.cpp | System/physStaticCompoundInfo.cpp |

The original has the type infos' cleanup functions just before
StaticCompoundInfo's functions, so the merged file defines the
reflection data first, with plain static cleanup functions as in
Havok's generated reflection code. Template instantiations would be
emitted after the rest of the file.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A folder's files are linked before its subfolders, and the rigid body
files are linked as one flat sequence. ListShape is the one file that
does not fit this order.

| Old | New |
|---|---|
| RigidBody/Shape/&lt;Kind&gt;/phys&lt;Kind&gt;Shape.cpp | RigidBody/Shape/phys&lt;Kind&gt;Shape.cpp |
| RigidBody/Shape/&lt;Kind&gt;/phys&lt;Kind&gt;RigidBody.cpp | RigidBody/physRigidBody&lt;Kind&gt;.cpp |
| RigidBody/Shape/List/physListShapeRigidBody.cpp | RigidBody/physRigidBodyListShape.cpp |
| physHavokMemoryAllocator.cpp | System/physHavokMemoryAllocator.cpp |
| StaticCompound/physStaticCompound{,Mgr,RigidBodyGroup,Util}.cpp | System/ |
| StaticCompound/physStaticCompound{Info,Autogen}.cpp | System/physStaticCompoundInfo.cpp |

The original has the type infos' cleanup functions just before
StaticCompoundInfo's functions, so the merged file defines the
reflection data first, with plain static cleanup functions as in
Havok's generated reflection code. Template instantiations would be
emitted after the rest of the file.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>lib: migrate to new nnsdk repo</title>
<updated>2026-10-11T02:37:53+00:00</updated>
<author>
<name>Pistonight</name>
<email>pistonknight@outlook.com</email>
</author>
<published>2026-09-27T20:28:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=5aac30d758dc7e0d23ab9e44a3b98847054de2f7'/>
<id>5aac30d758dc7e0d23ab9e44a3b98847054de2f7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>The task and thread families are plain ksys::</title>
<updated>2026-10-06T01:19:39+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-09-28T01:39:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=98f0c80f1d0b9d3ca19f0b38efcb597ee65d9dc0'/>
<id>98f0c80f1d0b9d3ca19f0b38efcb597ee65d9dc0</id>
<content type='text'>
They link in the same block as the plain-ksys:: Message family.
getItemValue and applyScreenFade sit in engine UI TUs, hence ksys::ui.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
They link in the same block as the plain-ksys:: Message family.
getItemValue and applyScreenFade sit in engine UI TUs, hence ksys::ui.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>Name placeholder declarations after the IDB</title>
<updated>2026-10-06T01:19:37+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-09-28T01:39:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=7bc225838a580adea925fd56421f520db4c5d393'/>
<id>7bc225838a580adea925fd56421f520db4c5d393</id>
<content type='text'>
Keeps source and CSV from drifting from the IDB. Names are read from the
bodies, e.g. ActionBase::applyParams is what all 13 non-stub overrides
of that slot do.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Keeps source and CSV from drifting from the IDB. Names are read from the
bodies, e.g. ActionBase::applyParams is what all 13 non-stub overrides
of that slot do.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>Document ContactPointInfo callback contract</title>
<updated>2026-09-09T04:23:28+00:00</updated>
<author>
<name>Tarun Bandi</name>
<email>57272137+tarun-bandi@users.noreply.github.com</email>
</author>
<published>2026-09-09T04:23:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=8495c4214b345b97f83295cb8fb1df6caf42841a'/>
<id>8495c4214b345b97f83295cb8fb1df6caf42841a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #185 from RobbyV2/phys-system-heap-accessors</title>
<updated>2026-07-31T00:06:14+00:00</updated>
<author>
<name>Michael Zhao</name>
<email>44533763+Pistonight@users.noreply.github.com</email>
</author>
<published>2026-07-31T00:06:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=7c65472576f5857bbcca71697f5e71aa93af6f8c'/>
<id>7c65472576f5857bbcca71697f5e71aa93af6f8c</id>
<content type='text'>
Match phys::System heap accessors</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Match phys::System heap accessors</pre>
</div>
</content>
</entry>
<entry>
<title>phys: match System contact listener and group handler functions</title>
<updated>2026-07-30T13:09:55+00:00</updated>
<author>
<name>RobbyV2</name>
<email>robby@robby.blue</email>
</author>
<published>2026-07-29T13:27:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=1e080b32ebdffedffcf2e7a5a3c002ce7bfe54f1'/>
<id>1e080b32ebdffedffcf2e7a5a3c002ce7bfe54f1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>phys: match System heap accessors</title>
<updated>2026-07-30T13:07:17+00:00</updated>
<author>
<name>RobbyV2</name>
<email>robby@robby.blue</email>
</author>
<published>2026-07-29T22:38:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=c6c8beaf58523d2bc045e4753ac6ad8736d317f3'/>
<id>c6c8beaf58523d2bc045e4753ac6ad8736d317f3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
