Did you know that the SNES has a whopping eight different background modes to play around with, not just the infamous Mode 7 that everyone has heard a load about already?
Well, the video below by Retro Game Mechanics Explained covers the first seven of the SNES’ background modes in great detail and is well worth viewing (he has a whole separate video dedicated to Mode 7 too):
Despite being the best resource for how backgrounds work on SNES that I’ve found [that laymen can actually understand], there were a few things that still weren’t entirely clear to me when I first watched the video above, such as the actual amounts of colours per layer and overall for the backgrounds in Mode 0 for example, or that the amount of colours on screen can be increased well beyond the standard 256-ish total [for background and sprites combined] using things like Direct Colour in some background modes, HDMA on the backdrop colour, and colour math for transparency effects. So I’ll detail some of those things more below.
Note: Keep in mind, I’m just covering the backgrounds alone below. There’s also sprites too, which is a whole other topic that I’ll maybe cover in the future. But one thing I want to point out here is that any numbers you see for the likes of colours in the backgrounds and unique tiles, etc, are [usually] for the backgrounds alone. Sprites have an additional 128 colours entirely to themselves (except in the 256 modes, where the sprites share colours with the backgrounds), there’s 512 tiles specifically dedicated to them too (regardless of how many you use for each of the backgrounds), they can sit above, below, or in between any of the background layers, can have their own transparency applied independently of backgrounds, and so on. Just some things to keep in mind when reading ahead.
Mode 0 (4 background layers)
Layers 1-4: 4 colours per tile (actually 3 plus transparency) using one of eight available 4-colour palettes per layer (actually 3-colour plus transparency), for a max of 24 visible colours per layer.
Background/Backdrop Colour: A single colour that is drawn to the screen if nothing else is shown on any particular pixels, which can be changed per scanline using HDMA.
Overall max of 97 visible colours across all the backgrounds (before HDMA and colour math are applied).
Tilemap Sizes: 32×32, 32×64, 64×32, 64×64 tiles. Tiles can be either 8×8 or 16×16 pixels, so tilemap size ranges from 256×256 to 1024×1024 pixels. Layers can use different tile sizes, but selected size will be the same for all tiles on a layer.
Unique Tiles: Max 1024 per layer.
Other features: Horizontal row scrolling (every 8 pixels high), horizontal line scrolling, layer priority shifting, window/shape masking, mosaic effect, colour math for transparency effects, HDMA (change main background colour per scanline, update window/shape masks per scanline, change background mode down screen, etc), interlaced mode (224-pixel image shown on even scanlines on one field and odd scanlines on the other field for a shaky pseudo 448-pixel effect, 30 full frames per second), pseudo high-res 512 half-blended pixels (dots) horizontally.
Some more examples of Mode 0 in games:
Edit: I’ve just discovered that apparently most of the 3D flying sections in The Lawnmower Man on SNES are done using Mode 0 too, which is a really cool and novel use of the mode, so I though I’d add that in here as another bonus example:
Mode 1 (3 background layers)
Layers 1-2: 16 colours per tile (actually 15 plus transparency) chosen from one of eight 16-colour palettes (actually 15-colour plus transparency), for a max of 120 colours visible per background layer.
Layer 3: 4 colours per tile (actually 3 plus transparency) chosen from one of eight 4-colour palettes (actually 3-colour plus transparency), for a max of 24 colours visible on the background layer. Shares colours and palettes with Layers 1 and 2.
Background/Backdrop Colour: A single colour that is drawn to the screen if nothing else is shown on any particular pixels, which can be changed per scanline using HDMA.
Overall max of 121 visible colours across all the backgrounds (before HDMA and colour math are applied).
Tilemap Sizes: 32×32, 32×64, 64×32, 64×64 tiles. Tiles can be either 8×8 or 16×16 pixels, so tilemap size ranges from 256×256 to 1024×1024 pixels. Layers can use different tile sizes, but selected size will be the same for all tiles on a layer.
Unique Tiles: Max 1024 per layer.
Other features: Horizontal row scrolling (every 8 pixels high), horizontal line scrolling, layer priority shifting, window/shape masking, mosaic effect, colour math for transparency effects, HDMA (change main background colour per scanline, update window/shape masks per scanline, change background mode down screen, etc), interlaced mode (224-pixel image shown on even scanlines on one field and odd scanlines on the other field for a shaky pseudo 448-pixel effect, 30 full frames per second), pseudo high-res 512 half-blended pixels (dots) horizontally. A single “bit-switch” can be set that moves layer 3 in front of all other layers, which is useful for HUDs (and some other cool effects and elements), and can be turned on/off per-scanline.
Some more examples of Mode 1 in games:
Mode 2 (2 background layers)
Layers 1 and 2: 16 colours per tile (actually 15 plus transparency) chosen from one of eight 16-colour palettes (actually 15-colour plus transparency), for a max of 120 colours visible per background layer.
Background/Backdrop Colour: A single colour that is drawn to the screen if nothing else is shown on any particular pixels, which can be changed per scanline using HDMA.
Overall max of 121 visible colours across all the backgrounds (before HDMA and colour math are applied).
Tilemap Sizes: 32×32, 32×64, 64×32, 64×64 tiles. Tiles can be either 8×8 or 16×16 pixels, so tilemap size ranges from 256×256 to 1024×1024 pixels. Layers can use different tile sizes, but selected size will be the same for all tiles on a layer.
Unique Tiles: Max 1024 per layer.
Other features: Horizontal row scrolling (every 8 pixels high), horizontal line scrolling, vertical column scrolling and horizontal column shifting (every 8 pixels wide), layer priority shifting, window/shape masking, mosaic effect, colour math for transparency effects, HDMA (change main background colour per scanline, update window/shape masks per scanline, change background mode down screen, etc), interlaced mode (224-pixel image shown on even scanlines on one field and odd scanlines on the other field for a shaky pseudo 448-pixel effect, 30 full frames per second), pseudo high-res 512 half-blended pixels (dots) horizontally.
Some more examples of Mode 2 in games:
Mode 3 (2 background layers)
Layer 1: 256 colours per tile (actually 255 plus transparency) using the full 256-colour palette, for a max of 255 colours visible on the background layer. Shares colours and palette with Layer 2 and sprites.
Layer 2: 16 colours per tile (actually 15 plus transparency) chosen from one of eight 16-colour palettes (actually 15-colour plus transparency), for a max of 120 colours visible per background layer. Shares colours and palettes with Layer 1.
Background/Backdrop Colour: A single colour that is drawn to the screen if nothing else is shown on any particular pixels, which can be changed per scanline using HDMA.
Overall max of 256 visible colours across all the backgrounds (before HDMA and colour math are applied).
Tilemap Sizes: 32×32, 32×64, 64×32, 64×64 tiles. Tiles can be either 8×8 or 16×16 pixels, so tilemap size ranges from 256×256 to 1024×1024 pixels. Layers can use different tile sizes, but selected size will be the same for all tiles on a layer.
Unique Tiles: Max 1024 per layer.
Other features: Horizontal row scrolling (every 8 pixels high), horizontal line scrolling, layer priority shifting, window/shape masking, mosaic effect, colour math for transparency effects, Direct Colour (BG1 uses its own set of RGB colours split across eight 256-colour palette variations with up to 2040 visible colours total for that layer alone, separate from BG2 and sprites that use 128 standard indexed colours each), HDMA (change main background colour per scanline, update window/shape masks per scanline, change background mode down screen, etc), interlaced mode (224-pixel image shown on even scanlines on one field and odd scanlines on the other field for a shaky pseudo 448-pixel effect, 30 full frames per second), pseudo high-res 512 half-blended pixels (dots) horizontally.
Some more examples of Mode 3 in games:
Mode 4 (2 background layers)
Layer 1: 256 colours per tile (actually 255 plus transparency) using the full 256-colour palette, for a max of 255 colours visible on the background layer. Shares colours and palette with Layer 2 and sprites.
Layer 2: 4 colours per tile (actually 3 plus transparency) chosen from one of eight 4-colour palettes (actually 3-colour plus transparency), for a max of 24 colours visible per background layer. Shares colours and palettes with Layer 1.
Background/Backdrop Colour: A single colour that is drawn to the screen if nothing else is shown on any particular pixels, which can be changed per scanline using HDMA.
Overall max of 256 visible colours across all the backgrounds (before HDMA and colour math are applied).
Tilemap Sizes: 32×32, 32×64, 64×32, 64×64 tiles. Tiles can be either 8×8 or 16×16 pixels, so tilemap size ranges from 256×256 to 1024×1024 pixels. Layers can use different tile sizes, but selected size will be the same for all tiles on a layer.
Unique Tiles: Max 1024 per layer.
Other features: Horizontal row scrolling (every 8 pixels high), horizontal line scrolling, vertical column scrolling or horizontal column shifting (every 8 pixels wide), layer priority shifting, window/shape masking, mosaic effect, colour math for transparency effects, Direct Colour (BG1 uses its own set of RGB colours split across eight 256-colour palette variations with up to 2040 visible colours total for that layer alone, separate from BG2 and sprites that use 128 standard indexed colours each), HDMA (change main background colour per scanline, update window/shape masks per scanline, change background mode down screen, etc), interlaced mode (224-pixel image shown on even scanlines on one field and odd scanlines on the other field for a shaky pseudo 448-pixel effect, 30 full frames per second), pseudo high-res 512 half-blended pixels (dots) horizontally.
Another examples of Mode 4 in a game:
Mode 5 (2 background layers)
Layer 1: 16 colours per tile (actually 15 plus transparency) chosen from one of eight 16-colour palettes (actually 15-colour plus transparency), for a max of 120 colours visible on the background layer.
Layer 2: 4 colours per tile (actually 3 plus transparency) chosen from one of eight 4-colour palettes (actually 3-colour plus transparency), for a max of 24 colours visible on the background layer. Shares colours and palettes with Layer 1.
Background/Backdrop Colour: A single colour that is drawn to the screen if nothing else is shown on any particular pixels, which can be changed per scanline using HDMA.
Overall max of 121 visible colours across all the backgrounds (before HDMA and colour math are applied).
Tilemap Sizes: 32×32, 32×64, 64×32, 64×64 tiles. Tiles can be either 16×8 or 16×16 pixels, so tilemap size ranges from 512×256 to 1024×1024 pixels. Layers can use different tile sizes, but selected size will be the same for all tiles on a layer.
Unique Tiles: Max 1024 per layer.
Other features: 512 pixels (dots) wide high-res mode, horizontal row scrolling (every 8 pixels high), horizontal line scrolling, layer priority shifting, window/shape masking, mosaic effect, HDMA (change main background colour per scanline, update window/shape masks per scanline, change background mode down screen, etc), interlaced mode (full 448-pixel image split vertically into even and odd scanlines, with the even scanlines shown on one field and odd scanlines on the other field, 30 full frames per second).
Some more examples of Mode 5 in games:
Mode 6 (1 background layer)
Note: I don’t actually know of any commercially-released games that use this mode, but here’s a rather impressive demo of it in action with most of the other background modes all on-screen at once:
1 background layer, 16 colours per tile (actually 15 plus transparency) using one of eight 16-colour palettes (actually 15-colour plus transparency), for a max max of 120 visible colours on the background.
Background/Backdrop Colour: A single colour that is drawn to the screen if nothing else is shown on any particular pixels, which can be changed per scanline using HDMA.
Overall max of 121 visible colours (before before HDMA and colour math are applied).
Tilemap Sizes: 32×32, 32×64, 64×32, 64×64 tiles. Tiles can be either 16×8 or 16×16 pixels, so tilemap size ranges from 512×256 to 1024×1024 pixels. Layers can use different tile sizes, but selected size will be the same for all tiles on a layer.
Unique Tiles: Max 1024 for the single background layer.
Other features: 512 pixels (dots) wide high-res mode, horizontal row scrolling (every 8 pixels high), horizontal line scrolling, vertical column scrolling and horizontal column shifting (every 16 pixels/dots wide), layer priority shifting, window/shape masking, mosaic effect, HDMA (change main background colour per scanline, update window/shape masks per scanline, change background mode down screen, etc), interlaced mode (full 448-pixel image split vertically into even and odd scanlines, with the even scanlines shown on one field and odd scanlines on the other field, 30 full frames per second).
Edit: Finally found an example of Mode 6. It’s not from an officially released game, but any example of the most rare SNES background mode is appreciated at this point:
Edit 2: Well, what do you know, Maxel/Maxwel created another example to show off Mode 6:
Mode 7 (1 background layer)
1 very special and unique background layer, 256 colours per tile (actually 255 plus transparency) and 255 colours total for the background. Shares colours and palette with sprites.
Background/Backdrop Colour: A single colour that is drawn to the screen if nothing else is shown on any particular pixels, which can be changed per scanline using HDMA.
Overall max of 256 visible colours (before HDMA and colour math are applied).
Tilemap Size: 128×128 tiles, 8×8 pixel tile size, and 1024×1024 pixels.
Unique Tiles: 256.
Other features: Layer priority shifting (using EXTBG setting, which halves the colours per tile to 128), window/shape masking, mosaic effect, colour math for transparency effects, Direct colour (The Mode 7 BG uses its own set of 256 fixed colours, separate from sprites that use the standard 128 indexed colours. Note: This is not available when EXTBG is enabled), HDMA (change main background colour per scanline, update window/shape masks per scanline, change background mode down screen, background Rotation, scaling, shearing, etc).
Some more examples of Mode 7 in games:
I think that covers just about everything for the general background specs.
As you can see, there’s a whole lot that can be done with the backgrounds on SNES to create all kinds of interesting visuals and cool effects, and I think the background capabilities are a real strong point for for the system.
Note: If you notice any errors, then feel free to add a comment pointing them out, and I’ll fix them when I get a chance.
Hi there, I recently found this and it’s very useful – however there are a couple of mistakes when you’re talking about mode 5.
Games like Kirby’s Dream Land 3 and Jurassic Park are not using mode 5 (aka “true high-res”) to create that transparency effect. What they are actually doing is using a feature called “pseudo high-res”. This fakes a high resolution effect on modes 0-4 (both these games are using mode 1) – it squeezes 2 pixels into a 1 pixel space by drawing them at half the width on both the main and sub screen, which then blend together and create a 50% transparency.
I have now updated the article with a couple of other Mode 5 examples. Thanks.
If you want some more examples, the menu screens in Secret of Mana and Trials of Mana (Seiken Densetsu 3) are using Mode 5. Smash Tennis also uses it for its menu screens.