diff options
| author | Miquel Sabaté Solà <mikisabate@gmail.com> | 2025-02-04 11:00:22 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <mikisabate@gmail.com> | 2025-02-04 22:00:07 +0100 |
| commit | 6c4ac7727094259b3b5a25e8c168245983e70b2f (patch) | |
| tree | 089c185a436f57a58f43b6c0ed3eed53e8b93da5 /scroll/README.md | |
| parent | fdf44365e56c3741f47cbd421a57f0d074a5492c (diff) | |
| download | code.nes-6c4ac7727094259b3b5a25e8c168245983e70b2f.tar.gz code.nes-6c4ac7727094259b3b5a25e8c168245983e70b2f.zip | |
scroll: Implement a roulette-like game
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'scroll/README.md')
| -rw-r--r-- | scroll/README.md | 21 |
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: + + |
