After the success of my last technical article on the MegaDrive how could I not move on to the Super Nintendo next? It seems only right to move on to the MegaDrive’s main rival and what many believe to be one of the greatest consoles of all time. However the Super Nintendo is a much more complicated beast than the MegaDrive so lets not waste time with introductions and get straight to it.

From a hardware perspective the SNES much like the MegaDrive can be thought of in terms of 3 core components, the CPU clocked at a modest 3.58Mhz, a sound processor that was based on 8bit CPU made by Sony and the picture processing units. However, unlike the MegaDrive and its video display processor, the SNES has two picture processing units, PPU 1 which mainly focuses on the backgrounds and scrolling etc, with PPU 2 acting more like a post-processing unit adding effects like mosaic and colour math. These PPU’s could work in up to 8 different modes including the famous mode 7 but I’ll come back to that in a few minutes, as I’ll need to cover some of the other features first for the different modes to make sense.

In terms of memory, the console again like the MegaDrive has a specific colour memory that could store 256 different colours from a choice of 32,768. It also had video memory and object memory for the graphics. Video memory or VRAM holds all the sprites and tiles which make up the backgrounds and characters etc. While object memory holds the details of objects on the screen, yes the SNES called them objects, not sprites as an object might be made up of several sprites or tiles. So the object memory stores information such as the location on-screen and the location in VRAM of the tiles for that object etc. The size of the object memory means that up to 128 could be displayed on the screen at once with 32 per line, and these could be up to 64 by 64 pixels. It also has 128KB work RAM, which is basically just normal RAM but it was expandable up to 1MB using the game cartridges.

Sprites and titles where stored with references to colour RAM rather than the colour themselves to save space and allow re-colouring by changing RAM

Right so I promised that I would get onto the graphics modes but before that, I need to cover how games were built back then. Most games were built around the idea of a number of scrolling background layers and a sprite layer of player-controlled characters and enemies. And on top of this to save space on those expensive cartridges sprites would be stored with references to colours in the colour RAM for each pixel’s colour, this meant that for the Super Nintendo for example with its choice of 256 colours from 32,000 would only have to store a value up to 256 for each pixel rather than up to 32,000, as it was just a pointer to the colour in colour RAM and the object did a similar trick by allowing the re-use of sprites to form different objects. The space limit of 256 colours shared between sprites and background titles is key to understanding the difference between most of the graphics modes of the SNES, as most offer a different set of features by sacrificing a background layer or forcing different layers to share the same colours.

Ok so graphics modes, the SNES has 8 of them, and they are all based around hardware limitations. Each allowing different features and effects, I’ll cover most of these but please forgive me if I gloss over some features or miss others as I could really do a full article on each mode. But in general, each mode sets limits on the number of backgrounds and the colours available for each, and unless I state otherwise most layers allow titles of 8×8 or 16×16 pixels and support the mosaic effect that you see in Yoshi’s Island.

There are all the modes except 7, each has some key features and a limit to the number of layers and colours on those layers

The SNES is touted as being able to display up to 4 background layers however the truth is only its first graphics mode can do this mode 0. And this mode is not used very often because each layer was limited to only 32 colours, however, they did not have to share any of those colours. In contrast to mode 0, the next mode, mode 1 was the most commonly used. It only allowed 3 background layers, two that could have up to 128 colours and the third that could have 32, the downside to this is that they must be shared, however. This was still massively popular though as that third layer could be used for a HUD as that didn’t need a huge amount of colours.

Mode 2 was the same as mode 1 but without the third layer, instead, it allowed access to a feature called offset change per column. Which is a fancy way of saying it allows titles to be scrolled independently, so think of it as a form of parallax scrolling, but both vertical and horizontal. Mode 3 is the first mode to allow what was called direct colour. It again only had 2 background layers, one with the full 256 colours and the other with 128, these would have to be shared obviously except, it allowed direct colour, in this mode tiles could store in the colour information in the sprite, this by-passed the colour RAM so they didn’t have to share colour with the background. And mode 4 was again similar to 3 but it had a one 256 colour layer and one 32 colour layer. Again the 256 layers could use direct colour but the reduct in the second layer meant that memory was freed up for that offset change per column, however in this mode it was limited to either verticle or horizontal not both at once.

Mode 1 was the most common mode with 3 layers, 2 that had 128 colours and one of 32.

Right mode 5 and 6, this is where things get a bit odd. So the SNES has an interlace mode, this allowed it to alternate between odd and even lines when producing an image ( remeber old CRT’s displayed in lines at a time rather than all at once like an LCD), on other modes this would not be that useful however in mode 5 and 6 they allowed for double the horizontal resolution, so if a developer was clever and altered the image between each frame in interlace mode you could effectively double the vertical resolution too. The key difference between 5 and 6, is 5 allowed 2 layers but 6 only had one as it also supports the offset change per column.

Ok, now the big one, mode 7, of all the modes 7 is the most complicated so I’m only going to scratch the surface as again it really needs its own article to explain fully. Mode 7 is most famous for supporting the scrolling, scaling, rotation and transformation of a single background layer, but for some perspective changes, this can’t be done by mode 7 alone, it needs HDMA but that is very complicated so I won’t be covering it. It also actually stores its data completely differently in VRAM. This change allows for the information to be stored in a more efficient way to make the maths easier and due to the way its structure it means the all of the tilemaps end up stored on one chip while the graphics are stored on another, which again helps with those complicated calculations. It also allows for the extended background, this basically reduces the colours available for the background but allows the priority of each pixel to be set, this allows for objects to appear both in front of and behind parts of the same layer.

Offset change per column allows titles to be scrolled horizontally or vertically

So that about covers how the Super Nintendo worked and the various features of its graphics modes, the are some other features such as colour math, where by the SNES can deduce colours combined from layers etc, which I haven’t gone into but the SNES is a complicated beast and its a lot to cover in one go, so if people are interested I’ll cover the parts I’ve missed or glossed over in a follow up piece. Hopefully you have enjoyed this piece and if you do want to know more or want me to cover another console just drop be a tweet or comment on this articles youtube video, as always I would love to hear back from anyone.