Mosaic: Difference between revisions
(more detail on the latches) |
(added apparent resolution table) |
||
Line 23: | Line 23: | ||
|+ | |+ | ||
| ''[[Super Mario World]]'' || after selecting and entering a level || [[File:mosaic_SMW.gif]] | | ''[[Super Mario World]]'' || after selecting and entering a level || [[File:mosaic_SMW.gif]] | ||
|} | |||
=== Apparent Resolution === | |||
This table describes how many mosaicized blocks appear on each axis when the mosaic filter is applied (the "apparent" screen resolution, in other words) disregarding overscan. | |||
{| class="wikitable" | |||
! $2106.4-7 !! Mosaic Block Size !! rows of complete blocks !! columns of complete blocks | |||
|- | |||
| 0 || 1 || 224 || 256 | |||
|- | |||
| 1 || 2 || 112 || 128 | |||
|- | |||
| 2 || 3 || 74 || 85 | |||
|- | |||
| 3 || 4 || 56 || 64 | |||
|- | |||
| 4 || 5 || 44 || 51 | |||
|- | |||
| 5 || 6 || 37 || 42 | |||
|- | |||
| 6 || 7 || 32 || 36 | |||
|- | |||
| 7 || 8 || 28 || 32 | |||
|- | |||
| 8 || 9 || 24 || 28 | |||
|- | |||
| 9 || 10 || 22 || 25 | |||
|- | |||
| 10 || 11 || 20 || 23 | |||
|- | |||
| 11 || 12 || 18 || 21 | |||
|- | |||
| 12 || 13 || 17 || 19 | |||
|- | |||
| 13 || 14 || 16 || 18 | |||
|- | |||
| 14 || 15 || 14 || 17 | |||
|- | |||
| 15 || 16 || 14 || 16 | |||
|} | |} | ||
Revision as of 19:31, 5 July 2023
Mosaic is a screen pixellation effect. It can be enabled or disabled on a per-background basis via bits 0-3 of 2106h. For a given background, the color of the pixel at screen position (H,V) is:
output_color(H,V) = input_color(floor(H/size)*size, floor(V/size)*size)
where size is the value of bits 4-7 of 2106h plus one. Thus, the shaded output consists of a grid of solid-colored squares where each entire square's color matches that of its top-leftmost input pixel.
The first mosaic square's location is always (0,0). Sprites are unaffected by the mosaic filter.
The mosaic filter has a horizontal and vertical subsystem. The horizontal mosaic latches remember the color of the top-leftmost pixel of each mosaicized block. The vertical mosaic latch remembers what the value of the PPU vertical scanline counter was at the top of each mosaicized block. [3]
Examples
Game Name | Mosaic Usage | Animated GIF |
---|---|---|
Final Fantasy III (US) | when trying to select a disabled menu option | |
Final Fantasy Mystic Quest | upon entering battles and before/after loading new sections of the map | |
Star Ocean | upon entering every battle | |
Super Mario World | after selecting and entering a level |
Apparent Resolution
This table describes how many mosaicized blocks appear on each axis when the mosaic filter is applied (the "apparent" screen resolution, in other words) disregarding overscan.
$2106.4-7 | Mosaic Block Size | rows of complete blocks | columns of complete blocks |
---|---|---|---|
0 | 1 | 224 | 256 |
1 | 2 | 112 | 128 |
2 | 3 | 74 | 85 |
3 | 4 | 56 | 64 |
4 | 5 | 44 | 51 |
5 | 6 | 37 | 42 |
6 | 7 | 32 | 36 |
7 | 8 | 28 | 32 |
8 | 9 | 24 | 28 |
9 | 10 | 22 | 25 |
10 | 11 | 20 | 23 |
11 | 12 | 18 | 21 |
12 | 13 | 17 | 19 |
13 | 14 | 16 | 18 |
14 | 15 | 14 | 17 |
15 | 16 | 14 | 16 |
References
- setting example: page 2-4-1 of Book I of the official Super Nintendo development manual
- bit-by-bit breakdown of the mosaic register: page 2-27-3 lbid
- display example of mosaic effect: Appendix A-7 lbid
- https://problemkaputt.de/fullsnes.htm#snesppubgcontrol
- [3] https://board.zsnes.com/phpBB3/viewtopic.php?p=204966#p204966