<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tools.nes, 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:50:13Z</updated>
<entry>
<title>runrom: simply pass 'args' into run()</title>
<updated>2026-10-09T19:50:13Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-09T19:50:13Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=91fd8313ef36e9b909a5409466f7ed06b40f1579'/>
<id>urn:sha1:91fd8313ef36e9b909a5409466f7ed06b40f1579</id>
<content type='text'>
This function already took most of the arguments from the user anyways,
and the list of separate arguments was getting crazier to a point that
even clippy started to freak out.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<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>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>runrom: specify the VALUE in --cycle-limit</title>
<updated>2026-10-08T07:52:49Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-08T07:52:49Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=6b4f6e26bb5fc2e2ba52e87960ef1c2e242dea50'/>
<id>urn:sha1:6b4f6e26bb5fc2e2ba52e87960ef1c2e242dea50</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>readrom: accept ranges for the --disassemble flag</title>
<updated>2026-10-06T19:48:13Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-06T19:47:52Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=9570d3b4a0b5e8d01a218743973feebd21115661'/>
<id>urn:sha1:9570d3b4a0b5e8d01a218743973feebd21115661</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>readrom: also print the raw bytes from the header</title>
<updated>2026-10-06T15:07:57Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-10-06T15:07:57Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/tools.nes/commit/?id=ffd5f8684cf3871250ab2f0007b0324d74c134bb'/>
<id>urn:sha1:ffd5f8684cf3871250ab2f0007b0324d74c134bb</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
</feed>
