<feed xmlns='http://www.w3.org/2005/Atom'>
<title>botw/expected, 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: Add a new, optimized check tool</title>
<updated>2021-07-30T21:52:55+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-07-24T18:04:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=6e30bbea3274679c34832182dcbeb4ed1211dd16'/>
<id>6e30bbea3274679c34832182dcbeb4ed1211dd16</id>
<content type='text'>
Reimplements tools/check.py in a faster language (picked Rust to learn
and play with the language and because installing dependencies is way
easier than with C++)

On my machine, a full run takes ~160ms with this new implementation
and 49s (!) with check.py.

The main performance improvements come from not having to use
pyelftools and the Python bindings of Capstone (which are both insanely
slow and perhaps less efficient than they could be). Function checking
is now also performed in parallel rather than sequentially for yet
another significant performance boost.

Other tweaks include editing Capstone and the bindings to avoid
computing expensive things that we don't actually need and avoiding
dynamic memory allocations in hot paths as much as possible.

check.py will be removed after the setup instructions are updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reimplements tools/check.py in a faster language (picked Rust to learn
and play with the language and because installing dependencies is way
easier than with C++)

On my machine, a full run takes ~160ms with this new implementation
and 49s (!) with check.py.

The main performance improvements come from not having to use
pyelftools and the Python bindings of Capstone (which are both insanely
slow and perhaps less efficient than they could be). Function checking
is now also performed in parallel rather than sequentially for yet
another significant performance boost.

Other tweaks include editing Capstone and the bindings to avoid
computing expensive things that we don't actually need and avoiding
dynamic memory allocations in hot paths as much as possible.

check.py will be removed after the setup instructions are updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove expected/</title>
<updated>2021-07-30T18:06:14+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-07-30T17:59:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=2204f46b0b488967184c3add50d3fe28f131bf18'/>
<id>2204f46b0b488967184c3add50d3fe28f131bf18</id>
<content type='text'>
The intention was to catch functional regressions in non-matching
functions but this doesn't actually work well because referenced
code and data may have moved after a function was dumped, in which
case the reference checker is unable to verify that function calls
and data references are still correct.

Considering this increases the amount of complexity in the checker
and makes the workflow more complicated for contributors, let's just
drop this mechanism. It isn't worth it.

Putting binary files in the repo is also pretty meh.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The intention was to catch functional regressions in non-matching
functions but this doesn't actually work well because referenced
code and data may have moved after a function was dumped, in which
case the reference checker is unable to verify that function calls
and data references are still correct.

Considering this increases the amount of complexity in the checker
and makes the workflow more complicated for contributors, let's just
drop this mechanism. It isn't worth it.

Putting binary files in the repo is also pretty meh.
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/evt: Add ResourceTimeline</title>
<updated>2021-06-17T21:42:21+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-06-17T18:56:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=357ef77879aab586da2e1d8424a0c6429669cc6f'/>
<id>357ef77879aab586da2e1d8424a0c6429669cc6f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>lib: Update EventFlow (add MetaDataPack)</title>
<updated>2021-05-28T16:10:23+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-05-28T16:10:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=cf99fd97f1cbbdf3696e24380692993fb4f4e9eb'/>
<id>cf99fd97f1cbbdf3696e24380692993fb4f4e9eb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/res: Implement BoneControl</title>
<updated>2021-03-20T19:00:09+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-03-20T14:49:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=5737a6ea7c4a7d18f6290e3b30d3b1d18e64400e'/>
<id>5737a6ea7c4a7d18f6290e3b30d3b1d18e64400e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/res: Finish implementing ModelList</title>
<updated>2021-03-19T23:17:33+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-03-19T13:31:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=8c8d9c0e7036d22d3eebe1c8dca54b44b601e8e5'/>
<id>8c8d9c0e7036d22d3eebe1c8dca54b44b601e8e5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/act: Add more BaseProcMgr functions</title>
<updated>2021-03-17T23:48:56+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-03-16T10:42:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=298fa864910e86819a36fac1b8a62f45556de1bb'/>
<id>298fa864910e86819a36fac1b8a62f45556de1bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/act: Implement remaining BaseProc functions</title>
<updated>2021-02-06T23:13:55+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-02-06T15:33:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=5f5c27a0782cda67115197f8fe2ca2588b6e4a22'/>
<id>5f5c27a0782cda67115197f8fe2ca2588b6e4a22</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys: Add MessageBroker and finish MessageDispatcher</title>
<updated>2021-02-03T18:27:15+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-02-02T18:15:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=df58679ddae8a97b1a64fe3ec62298b11b86a76d'/>
<id>df58679ddae8a97b1a64fe3ec62298b11b86a76d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys: Mark MessageDispatcher::update as non-matching</title>
<updated>2021-02-02T16:42:43+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2021-02-02T16:30:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=6e2e22cca5f9eafdd7b52aadde2c08fe28328d3b'/>
<id>6e2e22cca5f9eafdd7b52aadde2c08fe28328d3b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
