 ----------------------------------------------------------------------------
|For those of you who don't know how the SNES does do it's graphics, it      |
|uses tiles (surprise surprise!).                                            |
|                                                                            | 
|There are different MODEs on the SNES; the most famous being MODE 7.        |
|Most people think that $2106 (Screen Pixelation: Look in SNES.1 for an ex-  |
|planation on this register) is MODE 7. *** THIS IS NOT MODE 7!!! ***.       |
|So, the next time the pixels get really "big" (almost making them look like |
|look like IBM-clone 320x200x256 MODE 13h graphics), and your friend says    |
|"WOW! MODE 7 is really awesome," punch him/her in the nose for me. Just     |
|joking. :-)                                                                 |
|                                                                            |
|I'll be explaining MODE 1. I know how MODE 7 works, but since i've never    |
|used it, don't plan on me explaining it in the near future. Sorry to those  |
|who were looking for a MODE 7 document. Look elsewhere...                   |
|                                                                            |
|MODE   # of BGs       MaxColour/Tile  Palettes      Colours                 |
|----------------------------------------------------------------------------|
|0      4              4               8             32                      |
|1      3              16/16/4         8             128                     |
|                                                                            |
|MODE 0 is good for geometric shapes (if you were going to rotate a wire-    |
|frame cube, or something like that), basic star scrolls, or a very 'bland'  |
|text scroller... it's pretty cool and doesn't take up much space.           |
|                                                                            |
|I'm going to explain MODE 1, since MODE 0 is the same thing but with less   |
|bitplanes. :-)                                                              |
|                                                                            |
|MODE 1 is really best for things; detailed star scrolls, text scrollers,    |
|geometric shapes, and filled objects. It's the most common used MODE in the |
|the professional SNES programming world.                                    |
|                                                                            |
|You need to "setup the plane" to tell it what tile goes where. If you want  |
|demo-code, check out 'test.asm' in 'test.lzh'.                              |
|----------------------------------------------------------------------------|
|So, lets assume we have a character (a 8x8 tile) which we want to work with |
|to figure out the SNES's colour scheme:                                     |
|                                                                            |
|TestCHR1       dcb $00,$00,$00,$00,$00,$00,$00,$00 ; '@'                    |
|TestCHR2       dcb $00,$3C,$4E,$5E,$5E,$40,$3C,$00 ; '@'                    |
|                                                                            |
|You're probably wondering how the two lines above turn into actual graphic  |
|data on your monitor or television set. Very simple. Consider each byte     |
|(each new $xx statement) a new pixel line. Tile size is 8x8.                |
|                                                                            |
|      %00000000          = $00                                              |
|      %00000000          = $00    This is TestCHR1                          |
|      %00000000          = $00                                              |
|      %00000000          = $00                                              |
|      %00000000          = $00                                              |
|      %00000000          = $00                                              |
|      %00000000          = $00                                              |
|      %00000000          = $00                                              |
|                                                                            |
|      %00000000          = $00                                              |
|      %00111100          = $3C    This is TestCHR2                          |
|      %01001110          = $4E                                              |
|      %01011110          = $5E                                              |
|      %01011110          = $5E                                              |
|      %01000000          = $40                                              |
|      %00111100          = $3C                                              |
|      %00000000          = $00                                              |
|                                                                            |
|The at-symbol ('@') is visible in TestCHR2. Now you're probably wondering   |
|"Well, that tells me how to define a pixel on and off; what about the colour|
|itself!" Once again, very simple, but a tad more complex:                   |
|                                                                            |
|If you have a 0 for bitplane 0, a 0 for bitplane 1, a 0 for bitplane 2,     |
|and a 0 for bitplane 3, you get color #0; eg.:                              |
|                       0000 = Color #0                                      |
|                       ||||___________Bitplane 0                            |
|                       |||__________Bitplane 1                              |
|                       ||_________Bitplane 2                                |
|                       |________Bitplane 3                                  |
|                                                                            |
|So, now, think about a 0 for bitplane 0, a 1 for bitplane 1 and 2, and a 0  |
|for bitplane 3:                                                             |
|                       0110 = Color #6                                      |
|                       ||||___________Bitplane 0                            |
|                       |||__________Bitplane 1                              |
|                       |_________Bitplane 2                                 |
|                       |________Bitplane 3                                  |
|                                                                            |
|Keep in mind, this is the best explanation i've ever seen done about SNES   |
|pixel color definition. Until I see better, I'd have to say this is the     |
|best it's gonna get.                                                        |
|The result above gives you the color # per pixel; it's interesting. It's an |
|"overlay" method, so-to-speak, not to confuse this w/ main and sub-screens. |
 ----------------------------------------------------------------------------
