Please help consolidate all info for pixel artists for SNES
Posted: Wed May 17, 2017 9:16 am
RE-RE-UPDATED! I once again updated the document below based on all your feedback and corrections, please re-read and let me know if anything's incorrect or misleading.
Hi everyone. I'm a long time pro pixel artist (and also SNES fan) and I'm working on rounding up concise and clear (artist friendly) info to help pixel artists who want to make authentic moc-ups and game art for the SNES. I'm also doing this for all the other popular classic consoles, but getting thorough and easy to understand info that artists can use in modern pixel art programs to make sure they are not using too many colors, tiles, sprites, blending modes, etc. is proving hardest of all for the SNES.
I want to create as clear and concise a document as possible (for artists) where every sentence offers definitive guidance for exactly what rules and limits to follow, without drowning, confusing or intimidating artists with lots of technical jargon.
The final document will eventually be a web page, with attached images, animations, examples, and links to communities like this, and also special thanks to anyone who helped improve or confirm or clarify any of the information. This information will also be distributed with the industry standard pixel art program, so It's my hope this will encourage and entice many of today's best pixel artist to fall in love with developing art and games for the SNES.
Here's (below) what I have so far, along with some all caps notes where I'm definitely missing information. Can anyone who's interested please suggest edits, additions and provide the critical missing info?
One question I'd love answered is, if I'm using a pixel art program which supports 256 color indexes, which color indexes should I use for background tiles, for sprites, etc, and especially for the mode 7 translucent color effects, is there a setting for layers in programs like Photoshop which perfectly or near perfectly simulates the effect, such as additive, subtractive, screen, multiply etc?
_____________________________________________________________________
Super Nintendo/Super Famicom
Graphical summary
Important: The SNES stretched its 256 pixel wide screen image horizontally, resulting in pixels which were wider than they are tall (not perfect squares). As almost all monitors these days use pixels which are very close to perfect squares, your artwork and the entire width of the screen will be wider running on the actual hardware or an emulator which compensates for this pixel aspect ratio difference. You can temporarily stretch your image from 256 pixels wide to 298 pixels wide to preview how your art will look once its showing on an actual SNES.
Standard game resolution: Most games were 256x224 in Japan, the US, and Canada. Other regions such as Europe, Africa and south America used PAL as opposed NTSC television standard and had a slightly increased vertical resolution (239 pixels instead of 224), but at the cost of games running 10 fps slower and the screen having a subtle but noticeable non-stop flicker due to a 50 FPS refresh rate instead of 60 FPS. The PAL versions of most popular games did not put use to the extra resolution so often just had a larger black bar at the bottom of the screen, nor did they compensate for the 10 FPS slow-down so the games actually ran noticeably slower. For these reasons, most emulators and re-releases of classic SNES games use the NTSC versions of the games. Higher resolutions up to 512x448 (512x478 for PAL) were possible but since higher resolutions caused “interlace flicker”, and/or had increased limitations on layers and colors (due to memory bandwidth constraints); the higher resolutions were used for less movement and animation-intensive games, in-game menus, text, and high resolution images.
color range: The SNES uses 5 bits per color channel, providing a palette of 32,768 colors.
Number of color indexes available: 256, but many more on-screen colors were possible via color arithmetic for translucency effects. The three formulas for color overlay effects are additive, subtraction and average.
Background graphics color limitations:
There are 8 separate modes the SNES can use which offer very different and often complicated combinations of abilities and limitations. I'll only be covering the two most common and useful modes when the goal is multi-layered scrolling games.
MODE 1 allows for 3 scrolling layers, where 2 layers allow 15 colors (plus transparent) per tile and the third layer is three colors plus transparent per tile.
Every tile in each of the two 16 (15 and transparent) color per tile layers can pick from any of the eight 16 color palettes reserved for backgrounds, where palette 0 is color indexes 0 through 15, palette 1 is color indexes 16 through 31 and so forth.
The 4 color (3 plus transparent) per tile layer allows each of its tiles to pick from eight 4 index sub-sets of the first 2 16 color palettes... so, the first 4 color subset would be indexes 0 through 3, the second subset would be indexes 4 through 7.
MODE 3 allows for 2 layers of scrolling, where one layer is 15 colors (plus transparent) per tile and the other layer allows for each tile to use the entire range of 256 colors! (255 plus transparent) This mode is often used for title-screens. Keep in mind the cost of having each 8x8 tile being 256 color, it will eat up Vram much faster than 16 color or 4 color tiles, and a background later using 16 color tiles which can each use any of 8 total 16 color palettes means you can easily make 120 color layers at a far smaller cost, and this is before any use of the translucent color blend modes or other available very low-”cost” tricks to increase the number of on-screen colors. This is why most games use mode 1 over mode 3 for actual in-game levels. Also keep in mind, in mode 3, the second set of 128 colors (color indexes) are shared between the 256 color background layer and the sprites.
In general sprites can be set to be in front of or behind any of the the background layers. More information on that can be found here: https://wiki.superfamicom.org/snes/show/Backgrounds
Each scrolling layer is typically made of 8x8 pixel tiles, however you can opt to use a 16x16 tile mode instead, which would allow for level maps being twice as high and wide in pixels, but at the cost of each 16x16 tile grid section in the layer using one 16 color palette as opposed to the ability to pick a different set of 16 colors every 8 pixels across or down on the grid.
Each layer can use up to 1,024 tiles, limited by the amount of VRAM being used by all other graphical assets.
For all modes except mode 7 (not covered here) background tiles CAN be flipped horizontally or vertically OR BOTH at the same time!
On top of the separate background layers, any of them can be individually sliced horizontally in order to add even more layers of “parallax” (parts of the background scrolling at separate speeds to create the illusion or dept in scrolling games).
Sprites
Sprites: The SNES can display 32 fifteen color (plus a “clear” index for transparent pixels) sprites per scan line (row of pixels on screen). Also, if more than 34 8x8 tiles of sprite image are on a scan line, some sprite tiles will not be drawn.
The SNES can display 128 sprites on screen in total, but any more than 32 per scan line will result in some sprites not being displayed.
Each sprite can use any of the final eight 16 color palettes starting at color index 128 with the first color index of each 16 color palette being used for transparent pixels. Only sprites using the sprite palettes 4 through 7 (the last 64 color indexes in the 256 total color indexes) can participate in color math (translucency effects)
The SNES can use two sizes for its sprites at a time. Following are all the available sprite size option combinations:
8x8 and 16x16
8x8 and 32x32
8x8 and 64x64
16x16 and 32x32
16x16 and 64x64
32x32 and 64x64
16x32 and 32x64 (vertical flipping flips each half separately)
16x32 and 32x32 (vertical flipping flips each half separately)
The SNES lets you use a maximum of 512 8x8 pixel 16 color dedicated tiles at a time for sprites.
Sprites can be horizontally or vertically flipped or both at the same time!
Color math overlay translucency effects:
Any sprite which is using any of the sprite palettes 4 through 7 (the final 64 color indexes in the 256 color palette) can be set to a translucent blending mode.
Not just specific sprites, but entire layers (screens and sub-screens) can be be set to blend modes, and this can be used to get around the limitation of only sprites with specific palettes being translucent. There are too many possible combinations to cover here, but the following web page explains it thoroughly: https://wiki.superfamicom.org/snes/show/TransparencyThe four modes are:
The four blending modes are:
1) Additive: This ads the color value of the sprite to the color value of the pixels in the Background layer which the sprite is overlapping. This effect always makes color lighter. Great for mist, explosions, fire, magic, beams of light, etc.
2) Subtractive: This takes the color of the background layer the sprite is overlapping and subtracts the color of the sprite. This always produces a darker color. This is great for things like shadows, tinted glass, black smoke etc.
3) Average: This creates a 50 percent blend between the sprites colors and the colors in the background layer the sprite is overlapping. This effect is perfect for ghosts, light smoke, colored gas, or any other time you want something to look 50 percent translucent.
4) Subtract then divide by 2: This creates very dark colors and is not used very often.
For more detailed technical references:
https://wiki.superfamicom.org/snes/show/HomePage
https://emu-docs.org/Super%20NES/General/snesdoc.html
___________________________________________________________________
Thanks so much for your time, any help would be greatly appreciated.
Hi everyone. I'm a long time pro pixel artist (and also SNES fan) and I'm working on rounding up concise and clear (artist friendly) info to help pixel artists who want to make authentic moc-ups and game art for the SNES. I'm also doing this for all the other popular classic consoles, but getting thorough and easy to understand info that artists can use in modern pixel art programs to make sure they are not using too many colors, tiles, sprites, blending modes, etc. is proving hardest of all for the SNES.
I want to create as clear and concise a document as possible (for artists) where every sentence offers definitive guidance for exactly what rules and limits to follow, without drowning, confusing or intimidating artists with lots of technical jargon.
The final document will eventually be a web page, with attached images, animations, examples, and links to communities like this, and also special thanks to anyone who helped improve or confirm or clarify any of the information. This information will also be distributed with the industry standard pixel art program, so It's my hope this will encourage and entice many of today's best pixel artist to fall in love with developing art and games for the SNES.
Here's (below) what I have so far, along with some all caps notes where I'm definitely missing information. Can anyone who's interested please suggest edits, additions and provide the critical missing info?
One question I'd love answered is, if I'm using a pixel art program which supports 256 color indexes, which color indexes should I use for background tiles, for sprites, etc, and especially for the mode 7 translucent color effects, is there a setting for layers in programs like Photoshop which perfectly or near perfectly simulates the effect, such as additive, subtractive, screen, multiply etc?
_____________________________________________________________________
Super Nintendo/Super Famicom
Graphical summary
Important: The SNES stretched its 256 pixel wide screen image horizontally, resulting in pixels which were wider than they are tall (not perfect squares). As almost all monitors these days use pixels which are very close to perfect squares, your artwork and the entire width of the screen will be wider running on the actual hardware or an emulator which compensates for this pixel aspect ratio difference. You can temporarily stretch your image from 256 pixels wide to 298 pixels wide to preview how your art will look once its showing on an actual SNES.
Standard game resolution: Most games were 256x224 in Japan, the US, and Canada. Other regions such as Europe, Africa and south America used PAL as opposed NTSC television standard and had a slightly increased vertical resolution (239 pixels instead of 224), but at the cost of games running 10 fps slower and the screen having a subtle but noticeable non-stop flicker due to a 50 FPS refresh rate instead of 60 FPS. The PAL versions of most popular games did not put use to the extra resolution so often just had a larger black bar at the bottom of the screen, nor did they compensate for the 10 FPS slow-down so the games actually ran noticeably slower. For these reasons, most emulators and re-releases of classic SNES games use the NTSC versions of the games. Higher resolutions up to 512x448 (512x478 for PAL) were possible but since higher resolutions caused “interlace flicker”, and/or had increased limitations on layers and colors (due to memory bandwidth constraints); the higher resolutions were used for less movement and animation-intensive games, in-game menus, text, and high resolution images.
color range: The SNES uses 5 bits per color channel, providing a palette of 32,768 colors.
Number of color indexes available: 256, but many more on-screen colors were possible via color arithmetic for translucency effects. The three formulas for color overlay effects are additive, subtraction and average.
Background graphics color limitations:
There are 8 separate modes the SNES can use which offer very different and often complicated combinations of abilities and limitations. I'll only be covering the two most common and useful modes when the goal is multi-layered scrolling games.
MODE 1 allows for 3 scrolling layers, where 2 layers allow 15 colors (plus transparent) per tile and the third layer is three colors plus transparent per tile.
Every tile in each of the two 16 (15 and transparent) color per tile layers can pick from any of the eight 16 color palettes reserved for backgrounds, where palette 0 is color indexes 0 through 15, palette 1 is color indexes 16 through 31 and so forth.
The 4 color (3 plus transparent) per tile layer allows each of its tiles to pick from eight 4 index sub-sets of the first 2 16 color palettes... so, the first 4 color subset would be indexes 0 through 3, the second subset would be indexes 4 through 7.
MODE 3 allows for 2 layers of scrolling, where one layer is 15 colors (plus transparent) per tile and the other layer allows for each tile to use the entire range of 256 colors! (255 plus transparent) This mode is often used for title-screens. Keep in mind the cost of having each 8x8 tile being 256 color, it will eat up Vram much faster than 16 color or 4 color tiles, and a background later using 16 color tiles which can each use any of 8 total 16 color palettes means you can easily make 120 color layers at a far smaller cost, and this is before any use of the translucent color blend modes or other available very low-”cost” tricks to increase the number of on-screen colors. This is why most games use mode 1 over mode 3 for actual in-game levels. Also keep in mind, in mode 3, the second set of 128 colors (color indexes) are shared between the 256 color background layer and the sprites.
In general sprites can be set to be in front of or behind any of the the background layers. More information on that can be found here: https://wiki.superfamicom.org/snes/show/Backgrounds
Each scrolling layer is typically made of 8x8 pixel tiles, however you can opt to use a 16x16 tile mode instead, which would allow for level maps being twice as high and wide in pixels, but at the cost of each 16x16 tile grid section in the layer using one 16 color palette as opposed to the ability to pick a different set of 16 colors every 8 pixels across or down on the grid.
Each layer can use up to 1,024 tiles, limited by the amount of VRAM being used by all other graphical assets.
For all modes except mode 7 (not covered here) background tiles CAN be flipped horizontally or vertically OR BOTH at the same time!
On top of the separate background layers, any of them can be individually sliced horizontally in order to add even more layers of “parallax” (parts of the background scrolling at separate speeds to create the illusion or dept in scrolling games).
Sprites
Sprites: The SNES can display 32 fifteen color (plus a “clear” index for transparent pixels) sprites per scan line (row of pixels on screen). Also, if more than 34 8x8 tiles of sprite image are on a scan line, some sprite tiles will not be drawn.
The SNES can display 128 sprites on screen in total, but any more than 32 per scan line will result in some sprites not being displayed.
Each sprite can use any of the final eight 16 color palettes starting at color index 128 with the first color index of each 16 color palette being used for transparent pixels. Only sprites using the sprite palettes 4 through 7 (the last 64 color indexes in the 256 total color indexes) can participate in color math (translucency effects)
The SNES can use two sizes for its sprites at a time. Following are all the available sprite size option combinations:
8x8 and 16x16
8x8 and 32x32
8x8 and 64x64
16x16 and 32x32
16x16 and 64x64
32x32 and 64x64
16x32 and 32x64 (vertical flipping flips each half separately)
16x32 and 32x32 (vertical flipping flips each half separately)
The SNES lets you use a maximum of 512 8x8 pixel 16 color dedicated tiles at a time for sprites.
Sprites can be horizontally or vertically flipped or both at the same time!
Color math overlay translucency effects:
Any sprite which is using any of the sprite palettes 4 through 7 (the final 64 color indexes in the 256 color palette) can be set to a translucent blending mode.
Not just specific sprites, but entire layers (screens and sub-screens) can be be set to blend modes, and this can be used to get around the limitation of only sprites with specific palettes being translucent. There are too many possible combinations to cover here, but the following web page explains it thoroughly: https://wiki.superfamicom.org/snes/show/TransparencyThe four modes are:
The four blending modes are:
1) Additive: This ads the color value of the sprite to the color value of the pixels in the Background layer which the sprite is overlapping. This effect always makes color lighter. Great for mist, explosions, fire, magic, beams of light, etc.
2) Subtractive: This takes the color of the background layer the sprite is overlapping and subtracts the color of the sprite. This always produces a darker color. This is great for things like shadows, tinted glass, black smoke etc.
3) Average: This creates a 50 percent blend between the sprites colors and the colors in the background layer the sprite is overlapping. This effect is perfect for ghosts, light smoke, colored gas, or any other time you want something to look 50 percent translucent.
4) Subtract then divide by 2: This creates very dark colors and is not used very often.
For more detailed technical references:
https://wiki.superfamicom.org/snes/show/HomePage
https://emu-docs.org/Super%20NES/General/snesdoc.html
___________________________________________________________________
Thanks so much for your time, any help would be greatly appreciated.