diff options
| author | Miquel Sabaté Solà <mikisabate@gmail.com> | 2025-01-23 16:14:12 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <mikisabate@gmail.com> | 2025-02-04 22:00:07 +0100 |
| commit | fdf44365e56c3741f47cbd421a57f0d074a5492c (patch) | |
| tree | 92b55944dd84171f6c42857402b1f90f835abfa2 /fx/README.md | |
| parent | 6c207c192b7ce1a292249afd7b0a3499be70d03c (diff) | |
| download | code.nes-fdf44365e56c3741f47cbd421a57f0d074a5492c.tar.gz code.nes-fdf44365e56c3741f47cbd421a57f0d074a5492c.zip | |
fx: Provide an example of PPU bank switching
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'fx/README.md')
| -rw-r--r-- | fx/README.md | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/fx/README.md b/fx/README.md index 746e922..e7194dc 100644 --- a/fx/README.md +++ b/fx/README.md @@ -1,4 +1,12 @@ -TBD +## Effects by bank switching on CHR-ROM -- Animating through CHR bank switching (a la Megaman 5 with MMC3) -- Shrinking a sprite rendered through CHR-RAM +Some games like Megaman 5/6 performed some subtle background effects by +performing bank switching on the PPU thanks to the capabilities of the MMC3. +That is, the trick is to devote at least two similar 1KB chunks where one +contains a subtly changed version of the other. This way, you can simply perform +a periodic bank switch and the PPU will render subtly different things every +time, without the CPU having to dedicate any resources on changing any values on +the data. + +A very simple example is provided in [blink.s](./blink.s) where a character +blinks periodically. |
