<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tools.nes/lib/vnf/src, branch main</title>
<subtitle>Tools for NES/Famicom development.
</subtitle>
<id>https://git.mssola.com/nes/tools.nes/atom?h=main</id>
<link rel='self' href='https://git.mssola.com/nes/tools.nes/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/'/>
<updated>2026-10-09T19:45:05Z</updated>
<entry>
<title>vnf,runrom: detect bad data access</title>
<updated>2026-10-09T19:45:05Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-09T19:45:05Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=f6df4314945c1d37d314a7c88553b97b23c748e9'/>
<id>urn:sha1:f6df4314945c1d37d314a7c88553b97b23c748e9</id>
<content type='text'>
This includes detection for:

- Stack underflows (it was theoretically already there but it had never
  been properly tested).
- Load/store out of bounds for a given variable known via the .nasm/
  directory.
- Load out of bounds on a set of data referenced via a raw label (see
  commit aa5174fc055d ("xixanta: Add an hint for the ending of data
  labels")).

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>Add an option for setting a cycle limit</title>
<updated>2026-09-08T15:32:08Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-08T15:32:08Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=1601d0353342230a2a93baa6f008bc16a10137a1'/>
<id>urn:sha1:1601d0353342230a2a93baa6f008bc16a10137a1</id>
<content type='text'>
This can be quite handy when it comes to checking that a piece of code
doesn't exceed a given amount of cycles, or when you are tuning a block
of code in order to make it go beyond the current amount of cycles.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>vnf: refuse to proceed if the machine is inactive</title>
<updated>2026-09-08T15:31:44Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-08T15:31:44Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=37c9824cd7674aa9b8b9f094cf3a93e6da2c1f99'/>
<id>urn:sha1:37c9824cd7674aa9b8b9f094cf3a93e6da2c1f99</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>vnf: validate the minimum stack value</title>
<updated>2026-09-07T21:41:48Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-07T21:41:48Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=6000556d5005b5cd5faf72cb290e1d9a72beee35'/>
<id>urn:sha1:6000556d5005b5cd5faf72cb290e1d9a72beee35</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>vnf: display also the break mark on report()</title>
<updated>2026-09-07T21:19:53Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-07T21:19:53Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=e2a20dedc354c0b8d2e5253ffd4ac22d2b2898aa'/>
<id>urn:sha1:e2a20dedc354c0b8d2e5253ffd4ac22d2b2898aa</id>
<content type='text'>
When reporting the final instruction, if that was actually a brk (and
hence we stopped because of it), show the breaking mark as that could be
relevant when debugging.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>vnf: add the 'Machine.halt_on_brk' field</title>
<updated>2026-09-07T21:03:55Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-07T20:31:33Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=a17bd972a99007099057d7901b88732b22d08270'/>
<id>urn:sha1:a17bd972a99007099057d7901b88732b22d08270</id>
<content type='text'>
This allows developers to use 'brk' as asserts which can then be
debugged. This is true by default but it can be turned off via the
--no-halting-brk option from runrom.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>vnf: convert StatusRegister.break_mark to Option&lt;u8&gt;</title>
<updated>2026-09-07T14:38:48Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-07T14:38:48Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=2f4caa8e39ac39969522c4a2a285256c9a13b2c6'/>
<id>urn:sha1:2f4caa8e39ac39969522c4a2a285256c9a13b2c6</id>
<content type='text'>
Instead of assuming a default value, it's safer to just implement it in
Rust's native Option&lt;_&gt; type.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>vnf: improve documentation</title>
<updated>2026-09-07T14:38:16Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-07T14:38:16Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=44f98890a6d91cd9f0b64dec743a22a6e0013590'/>
<id>urn:sha1:44f98890a6d91cd9f0b64dec743a22a6e0013590</id>
<content type='text'>
Provide documentation for the library, and improve the documentation for
some of the structs and interfaces.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>vnf: properly document how branching works</title>
<updated>2026-09-06T20:50:50Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-06T20:50:50Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=076b1b31f37b37560382545d424ee063903b6b31'/>
<id>urn:sha1:076b1b31f37b37560382545d424ee063903b6b31</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>vnf: don't flip the given joypad inputs</title>
<updated>2026-09-06T20:44:29Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-06T20:44:29Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=83e5edac2cde5630a6acb26f7e1135f1b933db9a'/>
<id>urn:sha1:83e5edac2cde5630a6acb26f7e1135f1b933db9a</id>
<content type='text'>
I am not sure from where I got this bit flipping part, but I believe
things worked because of another bug (see 9c685d5b6ca1 ("vnf: also set
the carry on a zero compare")).

Fixes: ad77503d9533 ("vnf: add support for standard joypads")

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
</feed>
