<feed xmlns='http://www.w3.org/2005/Atom'>
<title>botw/tools, 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>tools: leave library code and weak copies out of the order check</title>
<updated>2026-10-18T17:12:09+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-18T17:12:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=c9cef4a09f42c53aabe1f7ad09e380d424e4aff0'/>
<id>c9cef4a09f42c53aabe1f7ad09e380d424e4aff0</id>
<content type='text'>
The decomp links all libraries before the game code, whereas the
original interleaves them with it, so every library object counted as
misordered (156 of 157) and each newly bound library row added one.

A weak function's copy in the original comes from whichever object the
linker saw first, so it says nothing about where its decomp object
belongs: 172 of 248 strays were weak copies. Weak functions now only
count for order within their object's main block.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The decomp links all libraries before the game code, whereas the
original interleaves them with it, so every library object counted as
misordered (156 of 157) and each newly bound library row added one.

A weak function's copy in the original comes from whichever object the
linker saw first, so it says nothing about where its decomp object
belongs: 172 of 248 strays were weak copies. Weak functions now only
count for order within their object's main block.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>tools: collapse renames in the order comparison</title>
<updated>2026-10-13T00:31:34+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-13T00:31:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=790a1a311d3865c70916a36ba36be762e2a96572'/>
<id>790a1a311d3865c70916a36ba36be762e2a96572</id>
<content type='text'>
Renaming or moving a file printed every still-misordered entry it touched
as a -/+ pair, burying the real changes. Entries are now keyed by original
address: ones only renamed are counted instead of listed, and the rest are
sorted by address.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Renaming or moving a file printed every still-misordered entry it touched
as a -/+ pair, burying the real changes. Entries are now keyed by original
address: ones only renamed are counted instead of listed, and the rest are
sorted by address.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>tools: add a script that measures object and function order</title>
<updated>2026-10-12T23:31:08+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-12T23:25:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=4bd1d8782b0dc01d5a3e82ec6e8093221fc81113'/>
<id>4bd1d8782b0dc01d5a3e82ec6e8093221fc81113</id>
<content type='text'>
The decomp binary should ideally be laying out objects and functions in
the same order as the original executable (as much as possible). Add a
script that a) reports misordered objects, functions that appear to be
implemented in the wrong TU and misordered functions within objects,
and b) can compare against a saved baseline so CI can fail PRs that
make the order worse.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The decomp binary should ideally be laying out objects and functions in
the same order as the original executable (as much as possible). Add a
script that a) reports misordered objects, functions that appear to be
implemented in the wrong TU and misordered functions within objects,
and b) can compare against a saved baseline so CI can fail PRs that
make the order worse.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>tools: drop the AI class generators and their aidef data</title>
<updated>2026-10-08T00:02:11+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-07T23:54:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=ffb09a2b111bfa31d6f7791406fb37efae7879f2'/>
<id>ffb09a2b111bfa31d6f7791406fb37efae7879f2</id>
<content type='text'>
The AI/Action/Query stub generators, the stub matcher and the IDA vfunc
renamers are no longer useful now that:
- every class has hand-edited source code
- IDB naming work has superseded the placeholder names used by the
  scripts

The scripts don't even import any more so we should just remove them.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The AI/Action/Query stub generators, the stub matcher and the IDA vfunc
renamers are no longer useful now that:
- every class has hand-edited source code
- IDB naming work has superseded the placeholder names used by the
  scripts

The scripts don't even import any more so we should just remove them.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the AI class status lists</title>
<updated>2026-10-04T21:40:13+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-04T21:40:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=b9c6e58791de570e22ccefc74b3c3ec90e4dba96'/>
<id>b9c6e58791de570e22ccefc74b3c3ec90e4dba96</id>
<content type='text'>
Decompilation progress is tracked per function in uking_functions.csv
and on the kanban board. These per-class lists stopped being updated
long ago (20 of 1927 actions "done") and only cost upkeep on renames.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Decompilation progress is tracked per function in uking_functions.csv
and on the kanban board. These per-class lists stopped being updated
long ago (20 of 1927 actions "done") and only cost upkeep on renames.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>Actor: move all AI code under Game/Actor</title>
<updated>2026-09-13T22:02:22+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-09-13T22:02:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=f4cd38c43b436fe91def1a1b0b3dfe0134369870'/>
<id>f4cd38c43b436fe91def1a1b0b3dfe0134369870</id>
<content type='text'>
Link order shows one sorted actor tree, not a separate AI project: the
Action/AI/Query folders and per-feature folders (Camera, Player, Horse,
...) come out of the same archive rounds as the actor classes.

(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>
Link order shows one sorted actor tree, not a separate AI project: the
Action/AI/Query folders and per-feature folders (Camera, Player, Horse,
...) come out of the same archive rounds as the actor classes.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #205 from Pistonight/update_many_libs</title>
<updated>2026-09-20T20:33:02+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-09-20T20:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=328a69ab1b4f2b935c27f7b7c88439139b6391c4'/>
<id>328a69ab1b4f2b935c27f7b7c88439139b6391c4</id>
<content type='text'>
lib: update sead, sdk, agl, musl, tools</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
lib: update sead, sdk, agl, musl, tools</pre>
</div>
</content>
</entry>
<entry>
<title>update libs</title>
<updated>2026-09-20T20:03:47+00:00</updated>
<author>
<name>Pistonight</name>
<email>pistonknight@outlook.com</email>
</author>
<published>2026-09-20T19:45:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=21d20529a8579905e864dfc2f967c22802380d3f'/>
<id>21d20529a8579905e864dfc2f967c22802380d3f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>setup: add 1.6.0 nso</title>
<updated>2026-09-20T19:50:38+00:00</updated>
<author>
<name>Pistonight</name>
<email>pistonknight@outlook.com</email>
</author>
<published>2026-09-20T19:35:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=507802f1f3170b8d70ad5cd4660818df73e202ad'/>
<id>507802f1f3170b8d70ad5cd4660818df73e202ad</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>tools: update viking, llvm-objdump, setup</title>
<updated>2026-07-01T07:01:20+00:00</updated>
<author>
<name>Pistonight</name>
<email>pistonknight@outlook.com</email>
</author>
<published>2026-06-24T00:02:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=f27eb36f7d673a8eb4dfc3a2ead60dcfa05fc22d'/>
<id>f27eb36f7d673a8eb4dfc3a2ead60dcfa05fc22d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
