Amiga - Advanced Graphics Architecture (AGA)

The later versions of Amiga computers, AGA (Advanced Graphics Architecture) used 8 bits per color channel (Red, Green and Blue), which meant that they could display a limited selection of colors (up to 256) from a total range of 16.7 million colors.

In addition to supporting all the original Amiga (OCS and ECS Modes) modes, the AGA Amiga's allowed for two 16 color scrolling layers, each with their own 16 color palette. The front scrolling layer would use 15 visible colors because its first color index must be used for "transparent".

Though AGA Amigas could display 256 colors, it wasn't used much for games, due to the extra memory and drawing time required for the extra color data. In fact most fast action/arcade style games tended to use either 16 color or 32 color indexes. There are lots of ways to get more colors on screen though, and one of the most useful techniques is to avoid using the AGA Amiga's supported scrolling layers, and instead use sprites or "blitted" objects to create a back layer of scrolling.

On paper AGA Amigas seemed quite weak compared to 16 bit consoles like the MegaDrive and SNES, which could display drastically more sprites on-screen, as well as more colors per layer when using "dual playfield" scrolling where typically back layers scrolled more slowly than the foreground layer for a nice effect of depth.

The reason the Amiga's sprite capabilities were so limited is that the designers decided to use a different approach to handle the moving objects in games. Instead of powerful sprites, they gave the Amigas a custom "blitter" chip, which could blit (draw) nearly a million pixels per second, drawing directly into into the background, capable of using some or all of the colors (indexes) used in the background. This could allow for a great many moving objects on screen, without the color limits, sprite-size, and number of sprite's per scan-line limits common to nearly all 16 bit consoles. Blitted objects also don't suffer the infamous "flicker" problem that sprites have when more than a specified amount end up occupying the same horizontal space on screen (scan-line).

When Amiga game creators wanted to add layered scrolling to their games using the standard methods they faced some severe limitations. For the AGA Amiga hardware to display 2 overlapping layers which could scroll individually, they had to break the available "bit-planes" into two layers of 4 bit planes each. This meant if you wanted to use true hardware based dual playfield scrolling on AGA Amiga's then the back layer was limited to 16 colors and the front layer was limited to 15 colors plus one index used to represent transparent pixels so you could see the back layer behind it!

To make matters worse, the AGA Amiga couldn't rely on it's weak sprite capabilities, (witch can have their own color indexes separate from the 32 used for the two layers) to make the front layer and moving objects more colorful like 16 bit consoles could. While the blitter could draw and move lots of objects on screen, it could only use those same 15 colors the front layer has at it's disposal. What many Amiga developers did was use the few sprites the Amiga had to create a nice looking 16 color player character, but then would use the blitter for almost all other moving objects, effects and enemies. This typically meant a smoothly scrolling game with a noticeably duller and lower-colored foreground layer, enemy sprites and effects such as explosions than console games would have, because they would all have to share the same limited 15 color palette.

More sophisticated Amiga developers were able to use other methods, using the Amiga's custom chips in less straight forward ways to create much more impressive games which rivaled many console games including eventual ports of the same game.

One important trick is to use the Amiga's "copper" to change the color of any given color index at any particular scan line. This was used frequently for so called "rainbow" or gradient effects to make prettier sky's which get lighter towards the horizon, but a creative and technically minded artist can do much more with this feature.

For layered scrolling, two fantastic alternatives to strict hardware "dual playfield mode" were developed and used to great effects in some of the most impressive Amiga games.

The first method puts incredible use to the Amiga's seemingly feeble sprites. Through some trickery too complicated to cover here, it was discovered that sprites could be cloned horizontally across the entire screen with no flicker problem. Combining this with the fact that sprites can be displayed behind the background instead of over it, clever developers realized they could create colorful and detailed 16 color back layers entirely from a repeating pattern of sprites! This meant that even OCS Amiga games could have full screen double layered scrolling with a 16 color back layer made of Sprites and a 16 or even 32 layer foreground! Now the blitter could be used to make nice, colorful 16 or 32 color player objects, enemies, effects etc on the front layer! It's very important to note that the last 16 color indexes in an Amiga's 32 indexes are always used for the sprites, so, if you used sprites to make a back playfield (layer) and made a 32 color front layer, the front layer would share its last 16 colors with the 16 colors of the sprites. To get a 16 color Sprite the Amiga must combine 2 of its three color sprites. This means the Amiga can produce four 16 color sprites in total, at 16 pixels wide each. That means the pattern you can design to repeat across the screen should be 64 pixels wide and as tall as the screen. Also keep in mind, the first color index for sprites (color index 16) is used for transparent pixels, so you can't use it in the repeating pattern.

The second method is to use a combination of the Amiga's CPU and powerful blitter to use raw blitting horse-power to draw a back-layer first (typically just 2, or 8 color to keep drawing time fast) and then draw the front layer and all characters, effects etc on top. The sprites can also be used in combination with this for additional moving objects. The greatest example of this method being used is the Amiga version of Toki.

For those who want to dig deeper into the incredible hardware trickery that the most impressive Amiga games used to in many cases rival console games in layers of scrolling and number of colors on screen, the following website is an unbeatable resource!

http://codetapper.com/amiga/sprite-tricks/

Graphical summary

Standard game resolution: 320x200 (USA) or 320x240 (often reduced to 288 pixels wide to provide the game more time to process sprites, color changes object blitting etc.)
color range: 16.7 million possible, 8 bits per color channel.
Number of color indexes available:
typically 16 or 32, but up to 256
Dual playfield mode (for layered scrolling) two separate palettes, 16 for the back player and then 15 plus a transparent color for the front layer.
Sprites: 8 three color (plus a "clear" index for transparent pixels) sprites per scan line which can be all be set to be 16, 32, or 64 pixels wide (the width setting applies to all sprites), and as tall as the screen. 2 three color sprites can be combined to create a single 16 color sprite! This means you can have 4 sixteen color sprites or 2 sixteen color sprites and 4 three color sprites etc. You can have many more sprites than 8 on screen, but any more than 8 per scan line will result in sprites flickering (becoming invisible) unless you're using a programming trick which clones the same sprite image at another x location.
NOTE: Most Amiga games use "blitter" objects instead of or in addition to sprites to allow for many more, larger, and more colorful objects on screen. Blitter objects draw right into the background so can only use the same color indexes as the background. This means if you're using dual playfield mode for layered scrolling, blitter objects can only use the same 15 color indexes as the foreground play-field.

NOTE2: There are several programming tricks developers use to get drastically more colors on screen and alternate methods to create games with layered parallax scrolling which circumvent the severe color limitations imposed by using the typical 8 and 7 color "dual playfield" method.

The following website is a fantastic resource for learning the best methods to achieve 16 bit console quality visuals on classic Amiga hardware.
http://codetapper.com/amiga/sprite-tricks/

For more detailed technical references: https://en.wikipedia.org/wiki/Amiga_Advanced_Graphics_Architecture

Pro Motion can help you to build multi layer projects and combine graphics with the built in layer system that allows to display different projects with their respective settings at a single master project. See layer effect setting "Display other project" to see how to do that.

sample projects


Last modified: 24 September 2017