<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tools.nes/lib, 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>xixanta: Add an hint for the ending of data labels</title>
<updated>2026-10-09T19:31:33Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-09T19:31:33Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=aa5174fc055dc66e78a8aa7030c018e43cf588a1'/>
<id>urn:sha1:aa5174fc055dc66e78a8aa7030c018e43cf588a1</id>
<content type='text'>
Some raw labels may point at a bunch of data laid out with the .byte
family of statements. Add hints for each of these labels so we also have
a range for them. This way, tools like 'vnf' might be able to detect bad
accesses and these sets of data.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>header: add GTROM support</title>
<updated>2026-10-08T19:57:47Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-08T19:57:47Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=dbd5a40d7db5f9dac1131928aff284cec04b61b1'/>
<id>urn:sha1:dbd5a40d7db5f9dac1131928aff284cec04b61b1</id>
<content type='text'>
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>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>header: add Sunsoft's FME-7 mapper chip</title>
<updated>2026-09-19T20:10:21Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-19T20:10:21Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=bc1138364ac3bd812ae16207bd68c669003e4671'/>
<id>urn:sha1:bc1138364ac3bd812ae16207bd68c669003e4671</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>header: add more information on unkown mappers</title>
<updated>2026-09-19T20:06:00Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-19T20:06:00Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=782534fa493f1f352ab821a174f3a8f8598a06b1'/>
<id>urn:sha1:782534fa493f1f352ab821a174f3a8f8598a06b1</id>
<content type='text'>
In particular, allow to optionally add the mapper and submapper ID that
was found, so it can be displayed to the user.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>xixanta: simplify evaluate_hexadecimal()</title>
<updated>2026-09-15T16:03:36Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-15T16:03:36Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=21489a0a1b465e89d73b86689dc4b8a2a40610f9'/>
<id>urn:sha1:21489a0a1b465e89d73b86689dc4b8a2a40610f9</id>
<content type='text'>
The 'size' variable can be initialized directly from the value we get
from the match statement below. I was probably thinking more on the
style of C, but the latest Rust stable channel complained about this.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>fuzz: change names to have dashes instead of underscore</title>
<updated>2026-09-15T16:02:43Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-09-15T16:02:43Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=01bb4fee8c45caee757b3bdc5432fd88dbcdfca3'/>
<id>urn:sha1:01bb4fee8c45caee757b3bdc5432fd88dbcdfca3</id>
<content type='text'>
From the latest update of Rust's stable channel, this was raised as a
bad format for fuzz names.

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