<feed xmlns='http://www.w3.org/2005/Atom'>
<title>code.nes/basics/flicker.s, branch main</title>
<subtitle>Hacking the Famicom/NES just for the fun of it.
</subtitle>
<id>https://git.mssola.com/nes/code.nes/atom?h=main</id>
<link rel='self' href='https://git.mssola.com/nes/code.nes/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/'/>
<updated>2025-03-20T17:01:34Z</updated>
<entry>
<title>Clear VBlank on reset on all examples</title>
<updated>2025-03-20T17:01:34Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2025-03-20T17:01:34Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=b21e3d2588749568c777a84435905bef110f3479'/>
<id>urn:sha1:b21e3d2588749568c777a84435905bef110f3479</id>
<content type='text'>
This was an oversight from the very first example that has propagated
into the other ones.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>shared: Bring joypad into a proper style</title>
<updated>2025-03-11T16:00:47Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2025-03-11T16:00:47Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=428c301a80641361f51af8102628b545cf9ae63e'/>
<id>urn:sha1:428c301a80641361f51af8102628b545cf9ae63e</id>
<content type='text'>
Put functions inside of the scope, avoid useless fallthroughs and be
more realistic on what is needed from elsewhere.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Bring code style to better standards</title>
<updated>2025-03-10T21:52:15Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2025-03-10T21:52:15Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=1a74e6a1856673072a61abd0861759901bc2d939'/>
<id>urn:sha1:1a74e6a1856673072a61abd0861759901bc2d939</id>
<content type='text'>
Be more careful on everything and try to follow along style.nes from my
repository. This might change in the future, but it's in a much better
state now.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>shared: Add utilities for clearing screens</title>
<updated>2025-03-07T15:07:04Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2025-03-07T15:04:42Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=ff22231f8a2f3714df701fd7c12b07915adc15e9'/>
<id>urn:sha1:ff22231f8a2f3714df701fd7c12b07915adc15e9</id>
<content type='text'>
These are quite mindless, but they are rather useful on simple examples
in which we don't care about performance and we just want to show
something on the screen.

For now this didn't matter much, but on real hardware I was able to
reproduce the same glitches as with emulators which randomized memory on
both the CPU memory and on the PPU. Hence, just allow some examples to
manually reset these regions and avoid silly graphical glitches.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Ensure background/sprite tiles are spread properly</title>
<updated>2025-02-04T21:00:36Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2025-02-04T14:46:54Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=3e7549c71f60ee1c4b49a7c09fde3b6017818089'/>
<id>urn:sha1:3e7549c71f60ee1c4b49a7c09fde3b6017818089</id>
<content type='text'>
At least on the MMC3 chip, it's important to have background tiles on
the first pattern table and then sprite tiles on the second pattern
table. This avoids a hardware bug on scanline IRQs.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Use custom configurations everywhere</title>
<updated>2025-02-04T21:00:02Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2025-01-23T12:57:45Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=0aefffacb5cb08202f7ba53b6e3b9a7303b1d66e'/>
<id>urn:sha1:0aefffacb5cb08202f7ba53b6e3b9a7303b1d66e</id>
<content type='text'>
Moreover, I have introduced a linker configuration for MMC1 as well, so
to properly implement the `basics/persist.s` example.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Vastly improve the documentation</title>
<updated>2025-02-04T20:12:11Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>msabate@suse.com</email>
</author>
<published>2024-04-16T20:46:31Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=4cfc79f145b7c620a2688f4a755d5e53c7ef0e9d'/>
<id>urn:sha1:4cfc79f145b7c620a2688f4a755d5e53c7ef0e9d</id>
<content type='text'>
This includes more clear explanations, images, etc.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Add a way to safely read from controllers</title>
<updated>2025-02-04T20:04:36Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>msabate@suse.com</email>
</author>
<published>2024-04-02T21:49:52Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=3c6a583190b827c0e88e535d486a4f191ee255c0'/>
<id>urn:sha1:3c6a583190b827c0e88e535d486a4f191ee255c0</id>
<content type='text'>
First of all, move some reading utilities into the new `shared`
directory, so controllers can be read by more than one example. Second,
even if we keep the example on `basics/input.s` simple, let's provide a
safe alternative for the other examples.

Signed-off-by: Miquel Sabaté Solà &lt;msabate@suse.com&gt;
</content>
</entry>
<entry>
<title>basics: Add a flickering example</title>
<updated>2025-02-04T20:04:01Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>msabate@suse.com</email>
</author>
<published>2024-04-02T20:02:59Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=1d1f08646352df00977a88adb99e04d54e4dfd5d'/>
<id>urn:sha1:1d1f08646352df00977a88adb99e04d54e4dfd5d</id>
<content type='text'>
Add an example on how to flicker sprites so to not surpass the scanline
limit for them.

Signed-off-by: Miquel Sabaté Solà &lt;msabate@suse.com&gt;
</content>
</entry>
<entry>
<title>basics: Add an example on CHR-RAM</title>
<updated>2025-02-04T20:03:23Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>msabate@suse.com</email>
</author>
<published>2024-03-30T21:54:52Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/nes/code.nes/commit/?id=6913995597651172b88301776a9e3a66a7c68117'/>
<id>urn:sha1:6913995597651172b88301776a9e3a66a7c68117</id>
<content type='text'>
Moreover, add a simple fix to the CI.

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