<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tools.nes/tests, 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>runrom: regularize the output on report</title>
<updated>2026-10-08T19:56:43Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-08T19:56:43Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=466dcce47cc1158d5d92a66119d4d89fe657e356'/>
<id>urn:sha1:466dcce47cc1158d5d92a66119d4d89fe657e356</id>
<content type='text'>
Make the hexadecimal values more cohesive and avoid having a
variable-sized line because of them.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>Don't error out on conditional .include</title>
<updated>2026-10-06T15:33:16Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-06T15:33:16Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=e71a73d0875c416507a3207bdec6fee145a79f68'/>
<id>urn:sha1:e71a73d0875c416507a3207bdec6fee145a79f68</id>
<content type='text'>
The hard requirement that an .include statement cannot be inside of
another block was, in the end, a bit short-sighted. Imagine the
following block:

.ifdef DEBUG
    .include "debug.s"
.endif

This is perfectly sound-looking code, and it should not be punished as
the developer is doing something that is not bending the assembler in
weird ways. Hence, just nuke this check.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>readrom: add support for default expansion device</title>
<updated>2026-10-06T15:27:50Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-06T15:15:16Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=4bf12db91feb5db98d65b518dbad0c1a8c6748df'/>
<id>urn:sha1:4bf12db91feb5db98d65b518dbad0c1a8c6748df</id>
<content type='text'>
The 15th byte from the NES 2.0 header was wilfully ignored, but it can
be relevant to the end user. Hence, add support for it in the 'header'
library, and add the frontend code into 'readrom'.

The point is not to support every single thing out there, but I have
added the stuff that I thought was most relevant, and we can add more
items to it whenever the need appears.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>readrom: add support for MMC3</title>
<updated>2026-10-06T15:06:39Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-06T15:06:39Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=b2ec385bf83ad895208e7eb481f704cf8a12a6c6'/>
<id>urn:sha1:b2ec385bf83ad895208e7eb481f704cf8a12a6c6</id>
<content type='text'>
In theory it's support for any kind of memory mapper, but in practice
only MMC3 has been added.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>nasm: warn on labels that point out of bounds</title>
<updated>2026-09-29T21:37:48Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-29T21:37:48Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=54e3fc561add5ce9d776a11a286b988aacb59daa'/>
<id>urn:sha1:54e3fc561add5ce9d776a11a286b988aacb59daa</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>tests: fix break_mark test</title>
<updated>2026-09-08T15:31:20Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-08T15:31:20Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=f556a7bbebab54b4a4bd9d9ecf0b79c085f0b543'/>
<id>urn:sha1:f556a7bbebab54b4a4bd9d9ecf0b79c085f0b543</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: 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>tests: add clarification as to what vnf-tests is</title>
<updated>2026-09-06T21:16:14Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-06T21:16:14Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=292f6ba2ed1d0b828ad84d4d4475f8523eef00a0'/>
<id>urn:sha1:292f6ba2ed1d0b828ad84d4d4475f8523eef00a0</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
</feed>
