SNES Background Modes

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:

Used in World 6-8 King Bowser’s Castle pillar level starting at 6:47:40
My own Mode 0 game concept using four background layers in each level

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:

Every flying section that’s using Mode 0 in this game is just dang impressive (see 2:384:215:5510:0312:4516:5918:0529:0032:0536:1037:46), and all running on a stock SNES at a smooth 30fps too.

Mode 1 (3 background layers)

Used throughout most of the game

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:

Used throughout the game in most levels
Used in most levels other than the stages/sections or bosses with Mode 7 rotating/scaling/shearing effects

Mode 2 (2 background layers)

Used for the vertically moving lines of blocks during gameplay

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:

Used on the rocking/tilting icebergs on the level at 1:18:20
The final snake boss uses it for his undulating body at 37:37

Mode 3 (2 background layers)

Used on the detailed and varied city maps without worrying about the normal 16 colours per tile constraints

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:

Used for the high-colour intro screens and cutscenes throughout
The tiles during gameplay are unusually 12×14, so Mode 3’s 256-colours-per-tile limit is used here to avoid issues with the usual 16-colours per 8×8/16×16 tile limits

Mode 4 (2 background layers)

Used during gameplay so the different-coloured bubbles can fit next to each other within the tile-colour limits

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:

Used on the strange looking lined-wipe effect during the intro at 0:44, while also in 256-colour mode

Mode 5 (2 background layers)

Used throughout, but doesn’t take full advantage of the colours, background layers, and other features of this mode

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:

At 34:33 the intro scene with the rain before the level is in 512×224 resolution
The US Gold logo at 0:12 is shown in 512×224 resolution

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:

The elusive Mode 6 in action. You can see the blocks and water at the bottom waving up and down using the column scrolling, and it looks like it’s in the 512×448 higher resolution too.

Edit 2: Well, what do you know, Maxel/Maxwel created another example to show off Mode 6:

Mode 7 (1 background layer)

Used during the races for the lovely 3D perspective effect on the courses

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:

Uses Mode 7 for the cool 3D-looking ground during racing
Used on the second top-down level and its boss starting at 4:41, and a few other places in the game
The base scaling slowly into view throughout this level from 7:02 is done with Mode 7
The very cool boss battle at 5:35:39 uses Mode 7 to rotate the entire screen
The swaying room during the escape sequence at 4:17 and the scaling space station and ship in the cutscenes that follow it are done using Mode 7
Uses Mode 7 for the spinning level backgrounds during gameplay
While E. Coyote falling to his death and scaling away from the camera at 7:16 is done using Mode 7, as are the scaling puffs of smoke when he hits the ground

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.

3 thoughts on “SNES Background Modes”

  1. 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.

      1. 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.

Leave a comment