aboutsummaryrefslogtreecommitdiff
path: root/scroll/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'scroll/README.md')
-rw-r--r--scroll/README.md21
1 files changed, 17 insertions, 4 deletions
diff --git a/scroll/README.md b/scroll/README.md
index d24117d..be33f87 100644
--- a/scroll/README.md
+++ b/scroll/README.md
@@ -15,7 +15,20 @@ information), while allowing the rest of the screen to scroll as expected. In
the end, it's the same example as `level.s` (same level to scroll), but the top
part does not move and shows a "THIS DOES NOT MOVE" message.
-Last but not least, the `mmc3.s` example shows how to configure the MMC3 chip
-(e.g. Super Mario Bros. 3, Kirby's Adventure) to have better control on which
-parts of the screen to scroll or not. To showcase this the example implements a
-roulette mini-game (similar to Super Mario Bros. 3 but simpler).
+## Scrolling in different ways in the same frame
+
+Some chips like the MMC3 give programmers a lot of flexibility when it comes to
+mid-frame customization. That is, chips like the MMC3 give an interface in which
+programmers can ask the chip to submit an IRQ on a given exact scanline. One
+main usage of this was to allow a top section of the screen to scroll, while
+leaving a small section at the bottom not to scroll. This way, games were no
+longer required to have a status bar at the top and they could have it at the
+bottom. But these chips allow for a lot of flexibility, so programmers can get
+playful with it. One simple example is the roulette mini-game from Super Mario
+Bros. 3. In here the game asks for two scanline IRQs and then the scroll
+direction is changed on each given IRQ. This way, the background is split in
+three sections that move in different directions/speed. Something similar (but
+more simple) has been reproduced in [roulette.s](./roulette.s), giving the
+following result:
+
+![roulette.png](../docs/roulette.gif)