A Lay-Person's Introduction to the Amiga's Hardware


Ever wondered how an Amiga works and produces those beautiful graphics and sounds? But perhaps you don't know anything about programming or electronics? Well, here's a simple guide!

You won't learn how to programme the Amiga from this guide. The nitty gritty details of how to talk to the hardware are omitted. Then you can see the woods without the trees.

This guide only applies to the capabilities of the Amiga's Original Chip Set (OCS), i.e. the original Amiga 1000 or the highly popular Amiga 500. Later models add extra features but retain compatibility.

This guide is simplified, may not be 100% accurate, blah blah blah.

Jump to Section...


Inside the Amiga 500

               Monitor                        Speakers
                 ^                               ^
                 |                               |
            +----------+    +----------+    +----------+
            |          |    |          |    |          |
            |          |    |          |    |          |<---> Floppy Drives
Mice / ---->|  Denise  |<-->|  Agnus   |<-->|  Paula   |
Joysticks   |          |    |          |    |          |<---> Serial Port
            |          |    |          |    |          |
            +----------+    +----------+    +----------+
                                 ^
                                 |
                                 v
                    +--------------+--  --  --  +
                    |              |            |
                    |  512 KB      | Optional    
                    |  Chip        | Trapdoor   |
                    |  RAM         | RAM         
                    |              |            |
                    +--------------+--  --  --  +
                                 ^
                                 |
                                 v
            +----------+    +----------+    +----------+
            |          |    |          |    |          |
            | Kick     |    |  68000   |    |          |<---- Keyboard
            | Start    |--->|  CPU     |<-->| 2x CIAs  |
            | ROM      |    |  @7MHz   |    |          |<---> Parallel port
            |          |    |          |    |          |      (printer port)
            +----------+    +----------+    +----------+

Let's break it down...


CPU and Friends

                    +--------------+--  --  --  +
                    |              |            |
                    |  512 KB      | Optional    
                    |  Chip        | Trapdoor   |
                    |  RAM         | RAM         
                    |              |            |
                    +--------------+--  --  --  +
                                 ^
                                 |
                                 v
            +----------+    +----------+    +----------+
            |          |    |          |    |          |
            | Kick     |    |  68000   |    |          |<---- Keyboard
            | Start    |--->|  CPU     |<-->| 2x CIAs  |
            | ROM      |    |  @7MHz   |    |          |<---> Parallel port
            |          |    |          |    |          |      (printer port)
            +----------+    +----------+    +----------+

This in itself is a complete computer system. Any computer needs four key parts:

  1. A CPU,
  2. Some ROM containing code to boot from and run (the Kickstart ROM),
  3. Some RAM to provide temporary working space for programmes,
  4. And some means of input and output, in this case the two CIA chips.

The Kickstart ROM

This is a Read Only Memory (ROM) chip containing the Amiga's operating system. Putting the operating system in ROM is a beautiful idea. It means it's always there. No need to load the operating system from disk when you boot up. It's read-only too, so it can't be accidentally corrupted.

So why do I need to boot from a Workbench floppy disk?

You don't! Many programmes can boot straight from their own disks. But Commodore couldn't fit absolutely everything in ROM. If you want to manage files in Workbench, it needs to load a few extra modules from floppy disk. It would be nice if the whole thing was in ROM like the competing Atari ST, but then the Amiga would cost more because of the bigger ROM chip. Then you wouldn't have one, would you?

If it's pretty much the whole Amiga operating system, why is it called Kickstart?

Historical reasons! When the very first Amiga 1000 model came out in 1985, the operating system wasn't finished. What do Californians do when something isn't finished? Why, they ship it broken!

But the 1980s were a different time. People wouldn't accept a broken operating system in ROM. So they put the whole operating system on a floppy disk instead. Then you could simply update the operating system by booting from a different disk.

Wait! There's a problem! A CPU can't talk to a floppy drive by itself. So when you switch on the Amiga, it would be unable to proceed.

The solution? Have a tiny "kick-start" ROM chip inside the Amiga. A few lines of code that loads an operating system from floppy disk and runs it.

By the time the Amiga 500 came out, the operating system was stable. Pretty much all of it lives on the ROM chip. But the name Kickstart stuck.

The Chip RAM

Every Amiga has some Chip RAM. The Amiga 500 has 512 KB, the Amiga 500+ and Amiga 600 have a full 1 MB. The new A1200 has a massive 2 MB as standard!

The optional trapdoor RAM can be added to an A500. Most A500 users add an extra 512 KB to bring the total RAM up to 1 MB.

We will talk more about the different types of memory later.

The CIAs

CIA stands for Complex Interface Adapter. These are Commodore/MOS chips but not Amiga-specific. They were sold on the open market and were used in far inferior computers like the Apple Macintosh too.

Despite the name, they're not complex. They just give you a few things most computers need:

But by itself, this isn't a very useful computer. There are no floppy drives, you're stuck with the code in ROM, and all output relies on the printer! It's the 1990s, not the 1960s!!


The Custom Chips

               Monitor                        Speakers
                 ^                               ^
                 |                               |
            +----------+    +----------+    +----------+
            |          |    |          |    |          |
            |          |    |          |    |          |<---> Floppy Drives
Mice / ---->|  Denise  |<-->|  Agnus   |<-->|  Paula   |
Joysticks   |          |    |          |    |          |<---> Serial Port
            |          |    |          |    |          |
            +----------+    +----------+    +----------+
                                 ^
                                 |
                                 v
                    +--------------+--  --  --  +
                    |              |            |
                    |  512 KB      | Optional    
                    |  Chip        | Trapdoor   |
                    |  RAM         | RAM         
                    |              |            |
                    +--------------+--  --  --  +

Now we're talking! This is what makes an Amiga so special.

Denise - Overview

The Denise chip is the video chip. It takes a steady stream of data and sends it out to the monitor as it refreshes the screen over and over, 50 or 60 times per second.

The Denise is able to do a few tricks with the video signal. It can scroll the screen, have two independent scrolling layers, and has up to 8 hardware sprites per scanline which are super-imposed on top of the screen.

Denise also handles the Amiga's different graphics modes, including the famous HAM mode, and it manages the colour palette.

Additionally Denise talks to the mice and joysticks. Why, we will never know. There is no direct connection between the mouse and the pointer on screen, if you were thinking that. They are totally independent functions just living in the same chip.

Paula - Overview

Paula is often thought of as the Amiga's sound chip, but it also handles the floppy drives and serial port. It even handles analogue inputs from analogue joysticks if you're into that stuff.

Paula takes four streams of data (one for each of its four audio channels), as well as a stream of data going in or out of the floppy drive when it's being used.


The Agnus

The true heart of the Amiga. The Agnus is a fat chip, containing many beautiful things. Let's lift her lid...


                     +-------> Denise and Paula <-------+
                     |                                  |
                     ^                                  v
+----------------------------------------------------------------------------+
|                    |                                  |                    |
|    +------------------------------+    +------------------------------+    |
|    |                              |    |                              |    |
|    |            Copper            |    |        DMA controller        |    |
|    |                              |<---|                              |    |
|    +------------------------------+    +------------------------------+    |
|                                          |  ^   ^    |    |    |           |
|               +--------------------------+  |   |    |    |    |           |
|               |           +-----------------+   |    |    |    |           |
|               v           |                     |    v    v    v           |
|    +------------------------------+    +------------------------------+    |
|    |                              |    |                              |    |
|    |        RAM controller        |    |           Blitter            |    |
|    |                              |    |                              |    |
|    +------------------------------+    +------------------------------+    |
|                    |                                                       |
+----------------------------------------------------------------------------+
                     ^
                     |
                     v
           Chip RAM and Trapdoor RAM

RAM Controller

Unglamorous but necessary in nearly every computer system. It simply controls the RAM.

There is only one RAM controller inside Agnus, shared between Chip RAM and Trapdoor RAM. This little detail becomes important later.


DMA Controller

This is the most important part of the Amiga, and what sets it apart from its inferior rivals. DMA stands for Direct Memory Access. It allows a stream of data to be sent continuously from memory to some other location inside the Amiga, or vice-versa. All this happens without the CPU having to become involved. And usually faster than the CPU could do it. In many cases this leaves the CPU free to get on with other tasks while data is being transferred in the background.

The DMA controller has multiple channels, allowing it to send multiple streams of data to different destinations simultaneously. But by far the most important of these destinations is Denise.

Whenever you are using the Amiga, the screen display you see is actually a small portion of Chip RAM which is visualised on the screen. Change a bit in this area of RAM, and the corresponding pixel on the screen changes. Better still, the small portion of Chip RAM currently being used as the display can be moved around in Chip RAM. This allows you to create animation by holding several frames in memory and flipping between them. Or you could hold an image much larger than the monitor and slowly scroll through it.

So how does the contents of Chip RAM appear on screen? The Agnus uses one (or more) DMA channels to send the contents of Chip RAM to Denise. Denise then adds the sprites, handles scrolling, the colour palette, and sends it on to the monitor. And all this is repeated 50 or 60 times a second, to maintain a stable flicker-free picture on the monitor!

Imagine the Amiga is running at 640 x 256 pixels, with a 50Hz refresh rate, and 4 colours. This requires about 2MB every second to be read from Chip RAM and sent to Denise! Now how about two separate scrolling layers (foreground and background) of 320 x 256 pixels and 8 colours each? Now we're talking 3MB a second!!! There is no way the CPU could keep up with this alone. Even if it could, it would be too busy to run any programmes at the same time. But the DMA happily handles this in the background without complaint.

Of course the DMA controller does the same thing for all the other parts of the Amiga it can talk to. This is how the Amiga is capable of producing such beautiful music at the same time a game is loading, while the CPU is busily decompressing the previous chunk of data it loaded!


The Blitter

You may have heard the term GPU, or Graphics Processing Unit. The term has recently been splattered all over the media with the advent of smelly PeeCee 3-D accelerated graphics cards like the Voodoo and Matrox Mystique.

Well, guess what kids? The Amiga's blitter was there a decade before you.

The blitter is a dedicated processor for graphics. It's not programmable in the sense that a computer's processor is, think of it more as a food mixer. You shove graphics in, let it grind away at it, and it spits it out in a new form. But the food mixer's blades can be changed at will, so you can change how it slices and dices!

So what's it good for? Well primarily the blitter is used to move graphic objects around the screen. We commonly call these objects BOBs, for Blitter Objects. They could be sprites in a game, tiles for the background in a game, or a window on a Workbench screen. The blitter can also draw rectangles, lines, polygons and combine several images together into one. Useful if you want to have a BOB (sprite) cut out a suitable hole in the background or something.

The blitter uses four DMA channels by itself. Three of them are inputs, i.e. taking data from Chip RAM and feeding it into the blitter. One of them is the final processed output from the blitter back to Chip RAM. Up to 3 ingredients in, 1 graphical smoothie out. You don't need to have all 3 inputs enabled. If you're drawing a rectangle or something you might have no inputs at all.

Of course the CPU can do everything the blitter can. But the blitter can do it much much faster than a 7MHz 68000.


A Blitter Example

Here we draw a non-rectangular irregular-shaped BOB (sprite) to the screen. We don't want to overwrite the contents of the screen in the "transparent" parts of the BOB. To do this, the BOB has an associated "mask". It's a bit like covering part of a wall with masking tape before you spray paint it. The parts which are masked won't get painted over.

Memory area 1:                                                  Memory area 3:
The graphics for the BOB itself       The area of memory being shown on screen
                                                      +--------------------+
+----------------+                                    | +----------------+ |
|                |                                    | |    .  .  .  .  | |
|  ############  |  Input 1                   Input 3 | |   .  .  .  .  .| |
| ##   ####   ## |>---------------+     +------------<| |  .  .  .  .  . | |
|  ##   ##   ##  |                |     |             | | .  .  .  .  .  | |
|      ####      |                |     |             | |.  .  .  .  .   | |
+----------------+                |     |             | +----------------+ |
                                  |     |             | C= 1084         -  |
                                  |     |             +--------------------+
                                  v     v
                                  BLITTER
                                  ^     v
                                  |     |
Memory area 2:                    |     |
The mask we're using for the BOB  |     |             +--------------------+
+----------------+                |     |             | +----------------+ |
|################|                |     |  Combined   | |    .  .  .  .  | |
|##            ##|  Input 2       |     |  Output     | |  ############ .| |
|#  ###    ###  #|>---------------+     +------------<| | ##  .#### . ## | |
|##  ###  ###  ##|                                    | | .##.  ## . ##  | |
|######    ######|                                    | |.  .  ####  .   | |
+----------------+                                    | +----------------+ |
                                                      | C= 1084         -  |
                                                      +--------------------+

The Copper

The Copper is kind of a second processor inside the Amiga dedicated to graphical effects. Copper is short for display COProcessER (Commodore can't really spell. KERNAL anyone?)

The copper is mostly used to change the palette or screen mode while the display is being drawn by the monitor.

What? While it's being drawn?

Yes! This class of effects are referred to as raster effects.

You will notice on the Amiga you can drag application screens up and down. Each application has its own colour palette and resolution, yet you can have several of them visible splitting the screen. How the hell is this possible?

Let's say you have two programmes on the screen. One on the top half, one on the bottom.

When the monitor first starts scanning the screen, the Copper sets the colour palette and resolution for the first programme.

  +------------------------+
  | +--------------------+ |
  | |O-->                | |
  | |Beam                | |
  | |                    | |
  | |                    | |
  | |                    | |
  | |                    | |
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

Now the copper sits and waits until the split point is reached.

  +------------------------+
  | +--------------------+ |
  | |--------------------| |
  | |--------------------| |
  | |--------------------| |
  | |O->                 | |
  | |Beam                | |
  | |                    | |
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

Then the copper changes the displayed area of memory to the second programme. It changes the colour palette and resolution to suit the second programme too.

When the end of the screen is reached, we go back to the start and do it all again. The result? Two programmes on screen at once, with totally independent screens.

  +------------------------+
  | +--------------------+ |
  | |--------------------| |
  | |--------------------| |
  | |--------------------| |
  | |####################| |
  | |####################| |
  | |####################| |
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

What else can we do with the copper? How about a nice graduated background colour from light blue at the top to dark blue at the bottom?

  +------------------------+
  | +--------------------+ | <- First line, copper sets background to light.
  | |                    | | <- Next line, copper sets background darker.
  | |....................| |
  | |,,,,,,,,,,,,,,,,,,,,| |  ...
  | |::::::::::::::::::::| |
  | |********************| |
  | |####################| | <- Last line, copper sets background to darkest.
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

Here the Copper is changing the background colour at the start of every line. Sure you can get the same effect by filling the palette with shades of blue. But that wastes all your colours! Here we just change the background colour over and over as the screen is drawn.

The copper can even make changes part-way through a scanline! Now we're really into the advanced effects. Fed up with the Amiga's limit of 8 hardware sprites? Just move the ones that have already been scanned by the beam so they get scanned again!

Show a sprite, [SNOOT]...

  +------------------------+
  | +--------------------+ |
  | | O->                | |
  | | [SNOOT]            | |
  | |                    | |
  | |                    | |
  | |                    | |
  | |                    | |
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

Wait for the beam to scan the first sprite...

  +------------------------+
  | +--------------------+ |
  | |....................| |
  | |.[SNOOT].O->        | |
  | |                    | |
  | |                    | |
  | |                    | |
  | |                    | |
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

Move the sprite to somewhere that hasn't been scanned yet...

  +------------------------+
  | +--------------------+ |
  | |....................| |
  | |.[SNOOT].O->        | |
  | |                    | |
  | |            [SNOOT] | |
  | |                    | |
  | |                    | |
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

Then the beam scans it again!

  +------------------------+
  | +--------------------+ |
  | |....................| |
  | |.[SNOOT]............| |
  | |....................| |
  | |............[SNOOT].| |
  | |....................| |
  | |..........O->       | |
  | +--------------------+ |
  | /|\ SC1435          -  |
  +------------------------+

Of course the CPU can do similar tricks. On smellier systems like the PeeCee, that's your only choice! But you guessed it, it slows down the CPU a lot. With the Copper, your CPU is unshackled. This is the Amiga way!


Types of RAM

The different types of RAM in an Amiga often confuses newcomers. But it is really simple:

Chip RAM

RAM that's shared between the custom chips and the CPU. All Amigas have Chip RAM.

If your Amiga has only chip RAM, you may experience some slow-down when the DMA controller is very busy. For example, the blitter is busy processing graphics, or you have a high resolution screen with lots of colours being displayed.

Why does this slow-down happen? There is only one bank of Chip RAM: only one device can access it at any given time. If the DMA controller is hammering it, then the CPU won't get a look in. So how is the CPU going to read the instructions that make up the programme it's running? It has to wait for an opening.

Conversely, the Chip RAM in all Amigas is plenty fast enough to support both a 640 x 256 4-colour screen at the same time as a 68000 CPU is running flat-out at 7MHz. No surprise this is the default resolution of Workbench!

If you want to use the custom chips to process or display data (such as graphics, sound samples etc.), that data must be in Chip RAM. Otherwise, the custom chips will not be able to reach it.

Trapdoor RAM (sometimes called "Slow RAM")

Specific to the Amiga 500, and an unfortunate consequence of Commodore tacking on a cheap memory expansion option at the last minute.

If you fit a memory expansion in the trap-door underneath your A500, you have added Slow RAM. Most people add an extra 512KB. You can add over a megabyte if you can afford it!

When you add Trapdoor RAM, you are essentially increasing the amount of Chip RAM in the system. BUT THERE'S A CATCH!

If you have an older revision of Agnus (as most A500s do), limitations within Agnus itself limit it to only 512 KB of RAM.

So what's the point of adding extra memory here?

Well, Agnus and its DMA controller might not be able to access that memory, but the CPU can! And the operating system knows this. It will load any data not needed by the custom chips (such as programme code) into the Trapdoor RAM. This leaves you more Chip RAM free for your graphics and sound.

There is one unfortunate limitation. Because Trapdoor RAM is technically part of the Chip RAM circuitry, the CPU has to wait its turn to access it when the DMA controller is busy. Even although (absurdly!) the DMA controller itself can't use the data in Trapdoor RAM!

So, if you add Trapdoor RAM to your Amiga, it won't go any faster. You'll just have more RAM to use. This is why some people call it "Slow RAM". It's not any slower than Chip RAM, it just can't give you a performance boost.

Some determined A500 users modify their Amigas with a later version of the Agnus chip. Then you can use Trapdoor RAM as extra Chip RAM.

Fast RAM

Fast RAM is connected directly to the CPU. It is firmly out of reach of the custom chips. This is both good and bad. It's bad because adding Fast RAM won't give you any more room for multiple screens of high resolution, lots of space for graphics used by the blitter etc.

But it's good because it's unhindered by the custom chips. The DMA controller can be flat-out, and the CPU still has the Fast RAM all to itself! The operating system puts your programme in Fast RAM, so it can run full speed at the same time the Blitter and Copper are flat-out. True hardware multi-tasking. The Amiga was designed with this in mind from day 1!

Fast RAM chips aren't necessarily faster than Chip RAM. It's just faster because it's not having to share. So if you're not thrashing the DMA controller, then you won't see any performance benefit.

Unfortunately most Amiga 500 systems do not have Fast RAM. To save cost, there is no controller built into the A500 for it. So until recently, it was expensive to fit. This situation may change over time as more users discover the benefits it can bring.

Kickstart ROM

Did you notice something else from the diagram at the start of this page? Yeah, the Kickstart ROM is also connected straight to the CPU. Just like Fast RAM!

That means the operating system itself can run much faster than your own code when the DMA controller is flat-out. Not quite as fast as Fast RAM, because the operating system itself needs a bit of RAM in addition to ROM. It has to wait its turn there.

But it does mean if you have the choice between writing your own code or asking the operating system to do the same task, it's sometimes faster to ask the operating system.

Accelerator RAM

Same as Fast RAM, except it's part of an accelerator board with a faster CPU. Accelerator RAM is usually much faster than Chip RAM because it has to match the speed of the CPU. With some of today's beasts of CPUs, that can be pretty quick! How does a 68030 at 20MHz sound? For that bugger to run at full speed, it needs RAM that's 3x faster than Chip RAM!

It's another good reason to take advantage of Fast RAM in your programmes whenever you can. A mega-fast CPU like this will have to slow down if it accesses Chip RAM, even with the DMA controller idle!


The Amiga's Graphics Hardware

The Colour Palette

All computers, except million-pound specialist workstations for graphics, use a colour palette to display colour. This is a flexible and memory-saving technique.

If you've ever had the misfortune of using a PeeCee, you will be well aware of the CGA card's famous colour palette. You can display any colour, as long as it's one of these:

#0 #1 #2 #3

Disgusting.

Then newer PeeCees have the fancy EGA graphics card. So nice. Now you can display any colour, as long as it's one of these:

#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15

Disgusting.

Along comes the Amiga. It landed from the heavens.

The Amiga can (under normal circumstances) display 32 colours. But the Amiga has taste! It doesn't limit you to 32 fixed colours. You can change each one of those 32 colours!

#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 #22 #23 #24 #25 #26 #27 #28 #29 #30 #31
Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any Any

When you draw a pixel on the screen, you choose which of the 32 colour numbers you want to use. Then, in the Amiga's colour palette, you define what colours those numbers actually represent. Painting by numbers.

Finally, a good fucking system!

An artist might create a colour palette like this:

#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 #22 #23 #24 #25 #26 #27 #28 #29 #30 #31

Lots of hand-picked colours with different shades for nice shading effects! Try that on your EGA card. Hey, at least it has one shade of brown.

So how does a colour palette really help us?

Each entry in the Amiga's colour palette has three numbers: the amount of red, the amount of green, and the amount of blue. By mixing these three colours in different amounts, you can create any colour.

The Amiga gives you 16 possible shades of these three colours, so can be represented in 4 bits each. Thus, you need 12 bits to define a colour.

Imagine if the Amiga let you define individual red, green, and blue amounts for each pixel independently. This would need a million bits of memory just to hold the screen! And imagine how slow updating that screen would be.

But define 32 hand-chosen colours centrally, and now you only need 5 bits to choose which of the 32 colours you want to use for a pixel. A big memory saving and speed-up!

It's also convenient for the artist. Most artists work from a colour palette, so why not put the colour palette in hardware?

The colour palette also allows some additional tricks. Ever heard of palette cycling? This is where we change the palette to alter the whole screen at once. Just changing 12 bits in the palette will alter the colour of every single pixel on the screen using that colour. A very handy and fast way of doing pseudo-animation like waterfalls, flashing lights etc. Here is an example:

There is no animation in this image. The only thing changing is the colour palette!

The Graphics Modes

The Amiga has five graphics modes that you can choose from:

  1. Hi-res
  2. Low-res
  3. Extra-halfbrite
  4. Dual-playfield
  5. HAM

All of these modes run at a resolution of 320 pixels horizontally, by 256 scanlines vertically. Except for hi-res mode, which doubles that to 640 x 256.

If you have an NTSC (North American) Amiga, your vertical resolution is reduced to 200 scanlines. That's a consequence of the strange television standard used in that region.

You can double the vertical resolution for any of these modes by enabling interlacing. We'll touch on this later.

Hi-res mode

This is the default mode for Workbench. It gives you a high resolution of 640 x 256 pixels, in a choice of 2, 4, 8 or 16 colours.

Using more than 4 colours in this mode will slow down access to Chip RAM. 8 colours it drops by 30% - tolerable. But 16 colours? A whopping 60%! You wouldn't want to use 16 colours on Workbench if you're impatient.

Hi-res mode is ideal for productivity, there are enough pixels to display 80 columns of text clearly on the screen. The same as a printed page. The slowdown when using more than 4 colours makes it unattractive for games.

The Workbench screen runs in hi-res by default, in 4 colours.

Low-res mode

This is the most common mode for games. You can choose 2, 4, 8, 16 or even 32 colours!

Up to 16 colours, Chip RAM is not slowed down at all. In 32 colours, speed drops by 15%. It's a minor slowdown so you can usually ignore it.

Workbench looks awful in low-res mode, not really suitable for displays with lots of text. But it is ideal for games and graphics!

Extra halfbrite mode

This special mode gives you 64 colours, but with a catch. The first 32 colours can be hand-picked as before. But in addition, you get a second set of 32 colours which are half-brightness copies of your main 32 colours:

#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 ... #31
Ordinary hand-picked colours:
...
Half-brightness colours:
...

How is this useful? When you're making graphics, you need two or more shades of each colour. That lets you draw realistic-looking shading, shadows and things like that. So the extra 32 half-brightness colours are very welcome to an artist, and you have a total of 64 colours on screen! It even saves you time, since the hardware creates the extra shades for you. Less time spent editing the palette in Deluxe Paint.

Why not just have 64 colours in the palette?

The colour palette uses up a lot of space inside the Denise chip. If they had expanded it to 64 colours, something else would have to go to make room. Say, the hardware sprites. Since artists use multiple shades of a colour anyway, it was easier to add a tiny circuit to halve the brightness of the existing colours.

Halfbrite mode drops Chip RAM speed by 30%. A tolerable slowdown for all those extra colours.

The extra shades in halfbrite mode can make for more realistic graphics.

Dual-playfield mode

You may have noticed that some platform or shoot-em-up games on the Amiga have an amazing 3-D-style parallax scrolling effect. As the screen scrolls, the foreground level map moves at a faster speed compared to the graphics in the background. The background looks further away, while the foreground "pops out" of the monitor at you.

The Amiga is the first machine to support this in hardware, only recently being copied by the inferior Japanese games machines. So how does it work?

When you switch to dual-playfield mode, you have two independently scrolling screens overlaid on each other. The background has 8 colours, while the foreground has a different set of 7 colours. Why 7 rather than 8? The 8th colour is transparent, letting you see the background "through" wherever the transparent colour appears!

          +-----------------+
          | . . . . . . . . |
     +-----------------+. . |
     |                 |. . | <---- Background screen
     |   ############  |. . |
     |  ##   ####   ## |. . |
     |   ##   ##   ##  |. . |
     | ^     ####      |----+
     +-|---------------+ <--------- Foreground screen
       |
       +----- Transparent colour

What you see:

     +-----------------+
     | . . . . . . . . |
     | . ############. |
     | .## . ####. .## |
     | . ##.  ## . ##. |
     | . . . ####. . . |
     +-----------------+

Chip RAM speed drops by only 30% in this mode, a very tolerable slowdown.

Later on, clever programmers would figure out ways of getting around the inflexible 8 colour + 7 colour split. For example 16 colours for the foreground and 4 for the background. But you can still make a very impressive-looking game using this mode without the advanced techniques.

Foreground and background are independent screens. They scroll at different speeds for a 3-D effect!

HAM mode

The Amiga's most famous mode, HAM stands for Hold-and-Modify.

Why is it so famous? Because it gives you a devastating 4096 colours on the screen at once!

How on earth is this wizardry even possible? With a bit of trickery of course!

A HAM screen starts off with 16 colours in the palette, just like any other normal screen. You choose these colours freely as normal:

#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15

But here's the clever bit. When you put a pixel on the screen, you can choose between four different modes for that pixel!

Mode 1: make the pixel one of the 16 colours in the palette.

Just like a normal 16 colour screen, nothing special here.

Mode 2: Forget the colour palette completely. Take the colour of the pixel immediately to the left of our pixel. Then change just the amount of red to the desired amount.

Start with a grey pixel: Change just the red content:


Modes 3 and 4: Same as mode 2, but change just the green, or just the blue.

What the hell?!

The thinking goes like this: ideally we want to be like those million-pound workstations which can independently choose any amount of red, green and blue for every pixel. No colour palette in sight! But that's just not practical.

So what's the next best thing? Let us choose any one of red, green or blue amounts per pixel. But not all three at the same time.

So to get to a desired colour, you'd need to do it over three pixels. First set the red. Then the next pixel to the right, you set the green. Then finally on the third and final pixel, we set the blue. Great, we've arrived at the colour we want!

Start with a black pixel: Change just the red content: Change just the green content: Change just the blue content:




This actually works very well when the colour is changing smoothly. Like skin tones, the sky, etc. The human eye can't easily detect that you're only changing one of the three colour components at a time:

Start Change red Change green Change red Change blue Change green Change green Change blue

See? It looks nice and smooth.

The problem comes when the colour changes suddenly from one pixel to the next. Like the edge of an object. It takes three pixels for us to set the red, green and blue components to the right amounts. The result? Unsightly colour fringing:

Start Change green Change red Change green Change blue Change red Change green Change blue

^ Yuck!!! ^ Eww!!!

This is where mode 1 comes in: using a colour from the palette. If we're careful about picking what 16 colours are in the palette, we can "jump" straight to a new colour using mode 1:

Start Change red Change green Colour from palette Change blue Change green Change green Change blue

Like magic, the ugly green fringe is gone!

But remember, you only have 16 colours in the palette. Use this anti-fringe technique sparingly!

If it sounds difficult to choose the right palette and juggle all this, you're not wrong. It's a fucking nightmare.

Artists don't juggle this by hand. They use a paint programme to do it all for them. Most commonly HAM mode is used for digitized images. A programme will automatically convert the image into HAM mode and choose the perfect palette. Newer programmes do a better job than older ones. It can take some minutes for a programme to figure out the best palette to use.

Speed...

HAM mode slows Chip RAM down by 30%. But that isn't the real performance penalty of using HAM mode. The problem is that each pixel's colour depends on pixels to the left of it. So you can't just draw BOBs (sprites) to the screen willy-nilly! You'd need to recalculate all the pixels. Impractical for a game, it would take minutes per frame!

You can at least use the Amiga's hardware sprites over the top of a HAM screen. But that's about your practical limit.

So HAM mode: amazing for art and viewing photos. Bad for games unless you're one hell of a programmer. HAM mode is the reason the Amiga is so famous for art and video, but you'll rarely see it in a game.

HAM mode. Photo-perfect (so much so that your web browser might not even show it. You need JPEG support and more than 256 colours! The JPEG compression makes it look worse on the Internet than it does on a real Amiga)

Overscan

The 320 x 256 (or 640 x 256) screen size is nominal. If you look at your Amiga on a standard television set, you will see there is a small border around the outside of the screen.

What's this border for?

The picture size on a monitor (and especially a consumer TV) varies slightly. It changes depending on screen brightness. Room temperature. Age of the monitor. And how many people are cooking dinner (mains voltage reduces, picture size changes).

Worse yet, every single TV set and monitor is slightly different to begin with!

So computers are designed to display the image in the middle of the screen, surrounded by a border. This ensures you can always see every pixel on the screen regardless of dinner time.

But the Amiga is often used for video work, where you would like graphics to extend right to the edge of the picture tube.

To facilitate this, the Amiga allows you to somewhat enlarge the display. You can have a bit more than 320 pixels horizontally - and a bit more than 256 scanlines vertically - if you don't mind the possibility of these being beyond the edge of the tube on some monitors.

Because you might not be able to see certain things on screen, most software and games do not overscan by default. But it's an option if you need it.

Interlacing

Any of the Amiga's graphics modes can have their vertical resolution doubled by enabling interlacing. So your 640 x 256 hi-res mode becomes 640 x 512, etc.

This is hardly ever used in games, but you will encounter it for productivity applications.

As with everything in engineering, there's a tradeoff. Interlacing causes a severe flicker on the screen because of the limitations of television signals. The flicker is worse for text and diagrams, much less for natural-looking photos without sharp edges.

Why does this flicker happen?

Back in the 1920s, it was decided that to double resolution of a television signal, only half of the scanlines would be drawn at a time.

In the first 50th of a second, we draw the first 256 scanlines with gaps in-between:

  +------------------------+
  | +--------------------+ |
  | |--------------------| |
  | |                    | |
  | |--------------------| |
  | |                    | |
  | |-----------O->      | |
  | |                    | |
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

Then in the next 50th of a second, we draw the remaining 256 scanlines in-between the first:

  +------------------------+
  | +--------------------+ |
  | |--------------------| |
  | |--------------------| |
  | |--------------------| |
  | |--------------------| |
  | |--------------------| |
  | |-----------O->      | |
  | +--------------------+ |
  | C= 1084             -  |
  +------------------------+

With a natural-looking image with soft edges, the eye responds slowly enough that it blends all of the lines together. Think of waving a sparkler around in the dark.

But with sharp lines, they will flicker on and off each 50th of a second. Intolerable!

Do not panic. There are solutions!

When the Amiga first came out, the most popular solution was a high-persistence green-screen monitor. These monitors are made with a special glow-in-the-dark-type material (kind of) on the surface of the tube. It continues glowing for a second or so after the beam hits it. The result? A completely flicker-free screen since all 512 lines glow at the same time. You don't even have to put up with the usual 50Hz refresh flicker either, it's a rock-solid display. This is why business computers use this type of monitor.

But there's two downsides with these monitors. First, their glow in the dark behaviour means the mouse pointer leaves trails and the scrolling is blurry. Second, they're only available in green or amber. Not full colour. Not even black and white! Not great for a machine as advanced as the Amiga.

The second option? Set your Workbench colours to shades of blue. The eye can't really see flicker in blue, so it looks more stable. But the eye can't really focus blue either so it will be difficult to see! Again not great. But no surprise the default Workbench background was blue until the new 2.x version came along!

We need a third option.

Enter the Flicker-Fixer.

A flicker fixer is a device that plugs into your Amiga's video port. The other end of the flicker fixer connects to a fancy VGA monitor, the type that new PeeCee computers have started shipping with.

The key is the VGA monitor. These new types of monitor don't follow television standards any more. Because they threw all of that rubbish away, they can draw 512 lines every frame without interlacing!

The flicker-fixer simply takes the interlaced signal from the Amiga, and converts it into a non-interlaced VGA signal for your fancy new monitor. It does this by re-digitizing the signal, storing all 512 lines, then sending them all out to the monitor in one go.

It's a rich man's game. The VGA monitor itself isn't cheap, and you'll have to throw away your 1084 monitor too. Then the flicker fixer is pretty expensive. It needs to contain circuits to digitize the signal and enough RAM to hold a whole frame of video. You know what the price of RAM is doing these days after that epoxy factory fire. Half a meg will take you to the cleaners.

But the boost in resolution can be worth it for word processing and high resolution drawing. You will be amazed how much can fit on screen when you have 512 scanlines!

Some of the brand new Amiga models for the 1990s have a built-in flicker-fixer. Or another means of generating a VGA signal. But chances are you don't have one of these yet.

Nineteen-nineties, time for VGA...

There's just one problem. Games made for ordinary 1084-style monitors or televisions look a bit strange on a VGA monitor. Because the VGA monitor has 512 scanlines and the game has only 256, each scanline is displayed twice. It makes the pixels look square rather than round.

Some people like the sharp look. Others hate it. But if you're in the market for high-end stuff like this, you're probably not worried about how games look. Games ported from the PeeCee will look as they intended, the PeeCee's new VGA card doubles the scanlines too! But games made for the Amiga were probably drawn using a 1084.

The Hardware Sprites

While everything else is going on, Denise can overlay hardware sprites on top of the video signal. Regardless of whatever video mode the Amiga is operating in - even HAM mode!

Take a simple shoot-em-up game as an example. You have some nicely-drawn background artwork representing the planet you're flying above. Your ship, the enemies, and the bullets appear in front of this artwork and move around freely.

On the Amiga, you have a choice of using either BOBs (blitter objects) or hardware sprites for these moving elements. Each have certain advantages and disadvantages.

To explain the difference, consider paper and pencil. You start with a piece of pre-drawn artwork, that's your background. If you draw a BOB, it's like taking an eraser, erasing a little hole for the BOB in your background art, then drawing the BOB into that hole. When you want to move the BOB, you need to erase it again, repair the hole you've left in the background art, and then repeat the erase-and-draw somewhere else.

Disruptive and slow!

Hardware sprites on the other hand are like drawing the sprites onto small pieces of paper cut-out to the size of the sprite. You simply drop them on top of your artwork where you want them to go. Want to move a sprite? No problem! Just pick up the piece of paper and move it. It leaves the background untouched, and it's instant to move.

Of course, this is the same technique that classic hand-drawn animation uses: they put animation "cels" on transparent plastic in front of a painted background and shoot it with a camera. They'd be mad to have a team of artists painting away, fixing up holes left in the painted background each frame!

There's another advantage to hardware sprites: they use colours 17-31 in the palette. Let's say you're using dual-playfield mode. Your background uses colours 0-7. Your foreground uses colours 9-15. And the sprites use colours 17-31. The result? 30 colours on screen at once. That 8-colour limitation for dual-playfield mode doesn't look so awful now, does it?

So with all this in mind, why would anyone use BOBs? Can't we just use hardware sprites for anything that moves?

Fuck no.

If hardware sprites sounded too good to be true, that's because it's a scam.

Well not really, but there are severe limitations to be aware of.

First limitation: you can only have 8 hardware sprites appear on a single scanline (without using Copper tricks).

So although the Amiga can support thousands of sprites on screen at once, only 8 of them may appear on any given scanline. You probably won't even be able to get thousands of sprites on the screen in total without them overlapping the same line! At least not if the sprites are more than a few pixels tall.

With tricky Copper tricks to raise this limit, it might be enough for your game. But what if it's not?

Second limitation: each sprite is only 3 colours plus a transparent colour.

This limitation isn't as bad as it first sounds. There is a special mode which allows you to pair two sprites together. This pair then makes a single 15 colour plus transparent sprite. Much more useful!

But there's a big catch if you do this. If all your sprites are paired, you can only have 4 sprites on any given scanline now!!

Now you pretty much need to use Copper tricks to boost that limit, otherwise your game is going to be pretty dull.

Third limitation: although a sprite can be any height, it cannot be wider than 16 pixels.

Need a wider sprite? You'll need to move two sprites around as a pair. And you can guess what that does to your sprites-per-scanline limit. It gets shagged.

Fourth limitation: the colour numbers a sprite uses are fixed. For 15 colour sprites, they are colours 17 to 31.

But with 3 colour sprites, it's a lot less flexible. The first two sprites per scanline use colours 17, 18 and 19. Then the next two use 20, 21, 22, etc. This is just annoying. In practice if you're using a lot of 3 colour sprites, then you need to use the entire last 16 colours of your palette for just 3 colours repeated 4 times! Getting around this is a pain in the arse.

Fifth limitation: The 8-per-scanline limit only applies when the screen isn't scrolling and is a normal width. If you have a scrolling screen - and especially if you have overscan - this limit is reduced. Not too much of a disaster but something to be aware of.

Why does this happen? It's because Agnus sends the sprite graphics to Denise during the dead time between the end of one scanline and the start of the next. The wider you make the screen, the less this dead time is. The result? Less time to fetch sprite graphics.

So in conclusion: hardware sprites are bloody useless!!

Nah, that's an overstatement. The hardware sprites are very useful, but you need to use them for something well-suited. For everything else, use BOBs.

Back to our example of the shoot-em-up game. Should we use sprites or BOBs here?

For the bullets, use BOBs. There will be an absolute ton of bullets on the screen, and you'll easily go over the 8-per-scanline limit. Plus bullets are small, the time taken to draw a tiny bullet is also small. They're a single colour which also speeds up the drawing.

Likewise for the enemies, consider using BOBs. There will be many of them and you'll need more than 3 colours. Using hardware sprites could give you a speed boost, but you'll have to work very hard with the Copper to work around the limitations of how many can appear on a scanline.

For the ship, use a 15-colour hardware sprite. If your ship is wider than 16 pixels, use several sprites. You can also use the hardware sprites for any extra attached weapons.

This works well because you know there will only be one player (or maybe two). You also know they'll always be on the screen, so you're making use of the hardware optimally.

If you have a laser-like weapon, use a hardware sprite for that too. Remember a hardware sprite can be any height, which makes it perfect for drawing a vertical laser beam on the screen. Even a fat 16-pixel-wide one.

What about the boss? He's a fat old bastard that fills most of the screen. Drawing him as a BOB might be slow, that's tens of thousands of pixels to push around.

Instead, consider using a whole bunch of hardware sprites to make up the boss. If that's not possible, consider the Amiga's dual-playfield mode. Use the background layer for your background art (the planet below), and the foreground layer is just the boss. Scroll the foreground to move the boss. Think of it as a giant screen-sized hardware sprite in 7 colours!

Yes it's a bit weird, but you have to think outside the box to make the most of the Amiga's hardware. Just because a piece of hardware was intended for one thing doesn't mean you can't use it for something else!

Because of all these limitations, many Amiga games just ignore the hardware sprites. Or as in this example, use them for the main player, heads-up display or something else that's always on the screen. The Atari ST doesn't even have hardware sprites, so lazy programmers porting games from the ST won't touch them either.

Some games use the hardware sprites, but for something you may not have thought of: a parallax background.

A background, made of sprites?!

Why yes, it can be done! We can use the Copper to move the sprite while it's being drawn, so a single sprite appears repeated across the whole scanline. Then we can use the layer priority feature of Denise to make the sprites appear behind all other graphics on-screen.

The result? An independent scrolling layer in the background consisting of a tiled pattern of 16 colours!

This technique can be combined with the Amiga's dual-playfield mode to get three or more scrolling layers. This gives an amazing 3-D sense to the screen!

These are more advanced techniques, but you should be aware of them. The Amiga is a Pandora's box of tricks. A gift that keeps on giving, and rewards the curious. Even if you cannot programme, it is enriching to guess what techniques a game is using.

There's one final use for the hardware sprites which is less glamorous: the Workbench mouse pointer. Yes, that's a sprite too. It's the reason you can move the pointer in front of a scrolling window and not have it flicker as it conflicts with the drawing. Try that on a PeeCee or Atari ST, it will flicker like a laser light show at an illegal warehouse rave!


The Genlock

Unlike most other computers, the Amiga supports a Genlock device. This fancy piece of kit overlays your Amiga's video signal onto another video signal. Like a signal from a video recorder or camcorder!

Using this device you can add titles, on-screen graphics and various effects to your video productions. But the best part? The Amiga's hardware support for Genlocks means the Genlock device itself is pretty cheap. You can pick up a brand new Amiga 500 with a Genlock for less money than one of those silly video titler boxes! And the Amiga can do professional-grade video titling, those silly boxes cannot.

Now you know why the Amiga is such a hit in the world of television and video.

Here's how you hook up your Genlock:


   +---------------------------------+
   |                                 |
   |                                 V
   | Monitor socket             +---------+     +--------------+
+---------------------          | ....... |     | +----------+ |
|=================== |          |  |  -|- |---->| |  C=      | |
|=================== |          | -|-  |  |     | |  1084    | |
| +--------+ - - +-+ |          +---------+     | |  monitor | |
| |        |  -  | | |            |    ^        | +----------+ |
| +--------+ --- +-+ |            |    |        | |       | -  |
+--------------------+            |    |        +--       -----+
      The Amiga                   |    |
                                  |    |              ____
                                  |    |           |^^    ^^|
                                  |    |           +--------+
           +----------------------+    |         Flap broken off the
           |                           |         C= 1084 monitor
           V                           |
+---------------------+            +------+
| +---------+ ======= |            |+--+  +----+
| +---------+ -  -  - |            ||  |  -  - +--||
+---------------------+            |+--+  ==== +--||
  |  Video recorder                +-----------+
  |                                  Camcorder
  |                                                  
  V
+-----------------+              ________
| /----------\ == |             / O===O /|
| |          | .. |            +-------+/|
| |    TV    |====|            +-------+/
| |          |====|            +-------+
| \----------/====|            Rented blockbusters on VHS taped over with
+-----------------+            dodgy Eric Schwartz animations
                               (not essential but recommended)

Commodore Amiga 1084 Monitor: This works as a normal Amiga monitor, you can see exactly what you're working on.

Camcorder: The little Video-8/Hi-8 tape in the camcorder contains the footage you've shot. The camcorder is used to play back the tape and dub it to your full-size video recorder (VHS or Betamax).

Video Recorder: An ordinary domestic video recorder (or better). This records the footage from your camcorder shot-by-shot, editing together your video production.

The Genlock: The Genlock takes the Amiga's video output and overlays it on top of the camcorder's video. What will you overlay? It's up to you! An initial title screen for your production, "lower-third" style text and graphics showing the name of somebody you're interviewing, special graphical effects, etc. etc.

The Genlock replaces colour #0 from the Amiga with live video footage. This lets you determine which parts of the Amiga's image are "see-through".

Some of the better Genlock models have sliders or knobs for fading the Amiga and camcorder video in and out separately. If your budget stretches to one of these models, go for it! You can make some really slick productions this way.

Some of the best Genlocks may have a chroma-key feature. This is the holy grail of Genlock technology. It lets you replace everything blue (or sometimes green) that your camera sees with the Amiga's video. This sort of technology is more expensive but opens up a lot of new possibilities.

The ultimate video editing system should also include a frame grabber. This is a device that plugs into your Amiga's parallel printer port. The other end plugs into a video source (like your camcorder). Using the included software, you can digitise a picture into your Amiga. Once inside the Amiga, you can manipulate it using a package like Deluxe Paint or TrueBrilliance. Finally you can use the Genlock to send it back to the video recorder and mix it with the video from the camcorder! All for a low low price.

All these bits of kit together shouldn't cost you more than a few hundred pounds. And your productions will look like they came out of a million pound television studio! Only Amiga makes this possible.

An example:

First, select a nice shot on the camera and freeze-frame it (you'll need a camcorder with a good freeze-frame. If your camcorder can't do it, dub it to your video recorder first. If that can't do it either, get a better one!):

Now use the digitizer to bring that into the Amiga. Use your paint package to make a nice title screen:

Beautiful! Now cue up your first shot on the camcorder and put the camcorder into pause mode:

Now you're ready to record the first shot. Set the Genlock to display only the Amiga video and press record on the video recorder. Wait a few seconds for the viewer to read the title screen.

Now the fancy part. With the video recorder still recording, press play on the camcorder. Now move the slider/knob on the Genlock to fade between the Amiga and the camcorder video:

A fantastic dissolve effect, you'd normally need a multi-thousand-pound video mixer to do this!

Now with the tapes still rolling, flip the Amiga over to the second image which you've drawn:

Now operate the slider/knob on the Genlock to overlay this graphic on top of the camcorder's video. Note the Genlock treats colour #0 (here, black) as transparent, so you can "see through" the black to the video underneath:

Of course you can do more advanced effects using the animation features in Deluxe Paint. Here are some ideas:

How the Genlock Works

The key to overlaying video is synchronisation.

To mix or overlay one video feed over another, they must both scan the picture tube of your television in lock-step. It's no good if the Amiga is just starting the top of its picture while the camcorder is half way through.

Sources in sync:
----------------
            Amiga                             Camcorder
  +------------------------+          +------------------------+    
  | +--------------------+ |          | +--------------------+ |    
  | |--------------------| |          | |--------------------| |    
  | |-----------O->      | |          | |-----------O->      | |
  | |                    | |          | |                    | |    
  | |                    | |          | |                    | |    
  | |                    | |          | |                    | |    
  | |                    | |          | |                    | |    
  | +--------------------+ |          | +--------------------+ |    
  |                     -  |          |                     -  |    
  +------------------------+          +------------------------+    

Sources out of sync:
--------------------
            Amiga                             Camcorder
  +------------------------+          +------------------------+
  | +--------------------+ |          | +--------------------+ | 
  | |--------------------| |          | |--------------------| |  
  | |-----------O->      | |          | |--------------------| |
  | |                    | |          | |--------------------| |
  | |                    | |          | |--------------------| |  
  | |                    | |          | |-----------O->      | | 
  | |                    | |          | |                    | |        
  | +--------------------+ |          | +--------------------+ |        
  |                     -  |          |                     -  |        
  +------------------------+          +------------------------+        

If you try to mix those signals together when they're out of sync, you get a bloody mess! The television won't know which one to synchronise its scanning to. The picture will roll like a fursuiter in a Zorb off a cliff.

So how do we get them in sync?

Only Amiga makes it possible!

Unlike all other computers, the Amiga has a video clock input. That means it can accept an external clock signal to synchronise its scanning with an outside source. This is the magic which makes the Amiga so special.

All the Genlock needs is to extract the synchronisation from the camcorder video and shove it in the Amiga.

So how do we do the magic where colour #0 becomes see-through?

Only Amiga makes it possible!!!

The Amiga's video socket has a dedicated pin just for colour #0! The pin becomes active whenever colour #0 is being shown.

So all the Genlock needs do is switch between Amiga/camcorder video when the pin changes.

Here's a simplified diagram of a Genlock:


Amiga colour #0 output >--------+
                                |
                                v A/B selection input
                +----+       +--------+
Amiga Red   >---|    |------>| Switch |------------------> Combined video
Amiga Green >---|    | Input +--------+ Output             output
Amiga Blue  >---|    |     A    ^
                +----+          | Input B
                RGB to          +----------------+-------< Camcorder composite
                composite                        |         video in
                video                            |
                converter                        V
                                          +----------------+
                                          | Sync extractor |
                                          +----------------+
                                                 |
Amiga sync in <----------------------------------+

Genlocks with knobs/sliders are a bit more complicated but not much!

Now compare it to how a Genlock made for something like a smelly old PeeCee might look:

            Extremely expensive!
            Degrades picture
            quality badly!
                    |
	            V
              +-------------+    +----+    +------+
PC Red   >--->| Analogue to |===>|    |<==>|      | <-- EXTREMELY expensive!
              | digital     |    | S  |    | 1MB  |
              | converter   |    | w  |===>| VRAM |
              +-------------+    | i  |    |      |
                                 | t  |    +------+
              +-------------+    | c  |
PC Green >--->| Analogue to |===>| h  |    +------+
              | digital     |    |    |<==>|      | <-- Bankruptcy 
              | converter   |    | m  |    | 1MB  |
              +-------------+    | a  |===>| VRAM |
                                 | t  |    |      | Degrades picture quality!
              +-------------+    | r  |    +------+    |
PC Blue  >--->| Analogue to |===>| i  |                V
              | digital     |    | x  |    +------------+    +----+
              | converter   |    |    |===>| Digital to |--->|    |
              +-------------+    |    |    | analogue   |    |    |
                 ^               |    |    | converter  |    |    |
                 |               |    |    +------------+    |    |
                 |               |    |    +------------+    |    |
+-------------------+            |    |===>| Digital to |--->|    |----------+
| Phase-locked-loop |<- Finnicky |    |    | analogue   |    |    |          |
+-------------------+            |    |    | converter  |    |    |          |
                ^ |              |    |    +------------+    |    |          |
                | |              |    |    +------------+    |    |          |
PC sync out >---+ |              |    |===>| Digital to |--->|    |          |
                  V              |    |    | analogue   |    +----+          |
             +---------------+   +----+=+  | converter  |    Composite       |
             |  Address      |     | ^  |  +------------+    video           |
             |  generator    |=====+ |  |                    encoder         |
             +---------------+       |  |  +------------+                    |
                                     |  +->| Digital    |                    |
+-------------------+                |     | colour     | <-- Works poorly,  |
| Phase-locked-loop |<- Finnicky     |     | detection  |     can't detect   |
+-------------------+                |     +------------+     colour #0,     |
           ^    |         +-----------+          |            only a         |
           |    +-------->| Address   |          |            specific       |
           |              | generator |          |            colour (and    |
           |              +-----------+          |            needs hand-    |
           |                                     |            tuning to      |
           +------------------+                  |            stop it        |
                              |                  |            flickering)    |
                        +----------------+       |                           |
Camcorder video in >-+--| Sync extractor |       |                           |
                     |  +----------------+       V                           |
                     |                       +--------+                      |
                     +---------------------->| Switch |<---------------------+
                                             +--------+
+---------------+
| Control logic |----> To everything!
+---------------+     
 ^^^^^^^^^^^^^^^
 |||||||||||||||
 |||||||||||||||
Tons of manual adjustments and trim pots to get an acceptable picture

Expensive, complicated, hard to adjust and the picture sucks. And where's the bloody video software? The PeeCee has almost none because you'd be fucking mental to jump these hoops! The only people using these kinds of devices are businessmen with tight collar fetishes. Good for putting Lotus 123 spreadsheets and graphs on video tape for investors.

No wonder the Amiga has cornered the video production market with its simple and perfect Genlocks! And you can still choke yourself with a collar or tie while using one if you fancy. Just like a fox!


The Amiga's Audio Hardware

The Amiga doesn't have any sound as such, just a painful warning beeper if you press the wrong key combination.

NOT.

I was thinking about the smelly PeeCee again.

The Amiga has the best sound of any computer on the market. It's so good that it's been used to produce a few hit records without any external gear!

So why does it sound so good?

Let's have a look at the closest competition: the popular Atari ST.

The Atari ST uses an off-the-shelf sound chip from Yamaha. It has three independent sound channels, meaning it can play three different notes or sounds at the same time.

The frequency (pitch or musical note) of each channel can be varied freely. The volume of each channel can also be varied.

By changing the volume of the channel up and down, you can produce different "shapes" of sound to simulate different instruments:

   Piano shape:             Organ shape:           "Swelling" strings:      

Key pressed              Key pressed             Key pressed
   |    Key released         |     Key released            Key released
   |    |                    |           |          |        |
   V    |                    V           V          V        V
V ||\_   |               V |  ___________        V |    _____
o ||  \_  V              o | |           |       o |   /     \
l ||    \_               l | |           |       l |  /       \
u ||      |              u | |           |       u | /         \
m ||      |__________    m |_|           |__     m |/           \
e +------------------    e +------------------   e +------------------
   Time ------------>       Time ------------>      Time ------------>

There's a big limitation which almost all other computers have: few waveforms. The waveform is the basic sound each channel produces. Unfortunately the Atari ST's sound chip can only produce either a square wave or noise.

So all the music sounds plinky-plonk. Everything starts out as a square wave. Except drums, which are just bursts of noise like static.

No matter how closely you match the "shape" of the sound, the basic waveform is still a square wave. You can convey the idea of, say, a piano. But it'll never sound like a piano. It will always sound like a children's toy.

Worse still, you only have three channels. Want to play a three-note chord? You're not gonna be playing any other notes at the same time, pal.

Enter the Amiga.

Straight off the bat, the Amiga has four independent audio channels. One more than most other computers.

Like other computers, the frequency (pitch) and volume of each channel can be varied.

Unlike most computers, the Amiga outputs stereo sound. Two of the channels go to the left speaker, and the other two to the right.

But the killer feature? The Amiga can produce any known waveform! No more plinky-plonk square waves.

And by any waveform, I really do mean any waveform. The waveform can be any length (up to the limits of memory), which means it can reproduce entire sound recordings!

Want to reproduce the sound of a pipe organ? Use an inexpensive sampling cartridge to record a single note from a pipe organ into the Amiga. Now you can play that pipe organ sound on any of the Amiga's channels!

Or you could take a more brute-force approach. Record a 10 second stereo loop of music into the Amiga. Use two channels to play the loop back on the left and right speakers respectively. Then you still have two channels free for extra sounds!

What if four notes at one time isn't enough? Simply record a chord into the Amiga. Now you can play an entire chord on a single channel!

How the Amiga Reproduces Sound

All sound is vibration. Sound waves travel through the air and strike the ear drum, which then vibrates in sympathy. These vibrations travel into nerves and into the brain where it's perceived as a complex sound.

A microphone has a diaphragm just like an ear drum. When sound waves strike the diaphragm, it vibrates in the same way as your ear drum. This is converted by the microphone into an analogue voltage which varies in sympathy with the sound wave.

Sound waves               >     Microphone                 Analogue voltage
\    \\  \\    \\    \    >   ____                >
 \    \\  \\    \\    \   >  /=||=\_______        >   Hi  |   _     _   _
  |    ||  ||    ||    |  > |==||==|____|_|---    >       |  / \   / \ / \
 /    //  //    //    /   >  \=||=/           \__ >   Med |  |  \_/  | | |
/    //  //    //    /    >                       >       |  |       | / \
     Hi  Hi    Hi         >                           Low |-/        \/   \_
Low   Med  Low   Low                                     +-----------------
--------Pressure---------                                 Time -------->

This varying voltage can be stored on tape (as a varying magnetic field), then reproduced by sending it to a speaker. A speaker is just a microphone running in reverse: put a changing voltage in, the diaphragm moves and causes sound waves. The speaker diaphragm moves in exactly the same way the microphone diaphragm did when recording the sound.

How do we shoehorn a computer into this scheme?

The analogue-to-digital, and digital-to-analogue converters.

An analogue-to-digital converter takes a voltage and converts it into a number. For example, as the voltage varies between 0 and 2.55 volts, it might produce a number between 0 and 255.

A digital-to-analogue converter does the reverse. Put a number in (for example 152), and you get a matching voltage out (for example 1.52 volts).

But how can we use this to record a sound and play it back?

We take regular samples of the voltage and store them as numbers. This is where the term "sample" comes from!

The trick is to take the readings so frequently, it captures the actual shape of the sound:

V ^ 6  |     _          _
o | 5  |    / \        /
l | 4  |   /   \      /
t | 3  |  /     \    /
s | 2  | /       \  /
  | 1  |/         \/
  | 0  +|----------------
        |      ----> Time
      Take a reading here. 0 volts.

V ^ 6  |     _          _
o | 5  |    / \        /
l | 4  |   /   \      /
t | 3  |  /     \    /
s | 2  | /|      \  /
  | 1  |/ |       \/
  | 0  +--|---------------
          |     ----> Time
       Take another reading here. 2 volts.

V ^ 6  |     _          _
o | 5  |    / \        /
l | 4  |   /|  \      /
t | 3  |  / |   \    /
s | 2  | /  |    \  /
  | 1  |/   |     \/
  | 0  +----|---------------
            |     ----> Time
       Take another reading here. 4 volts.

And repeat until the entire sound is recorded:

V ^ 6  |     _          _
o | 5  |    / \        /|
l | 4  |   /| |\      / |
t | 3  |  / | | \    /| |
s | 2  | /| | | |\  / | |
  | 1  |/ | | | | \/| | |
  | 0  +-----------------
        | | | | | | | | |
        0 2 4 4 2 0 1 3 5
        All the readings taken for the full length of the sound

All the readings stored as numbers in memory:
0, 2, 4, 4, 2, 0, 1, 3, 5

Great, now what do we do with this list of numbers?

Simply send these numbers back to a digital-to-analogue converter at the same speed you recorded the readings at!


V ^ 6  |                 _
o | 5  |                |
l | 4  |     ___       _|
t | 3  |   _|   |__   |  
s | 2  |  |       |  _|  
  | 1  |__|       |_|    
  | 0  +------------------
                Time ---->

Hang on!! That doesn't look much like the original waveform!

You're right. We didn't take the samples frequently enough. The result is a grainy sound that's like a telephone.

Let's take twice as many samples per second and try again:

V ^ 6  |     _          _
o | 5  |    _|_        _|
l | 4  |   _| |_      _| 
t | 3  |  _|   |_    _|  
s | 2  | _|     |_  _|   
  | 1  |_|       |__|    
  | 0  +-----------------
               Time ---->

Ah! That looks closer to what we started with! Chances are, you wouldn't even be able to hear it's been sampled and reproduced.

As a general rule, you want to sample at a rate that gives you the quality you need. And that suits the sound being recorded:

If we send the samples at a slower speed than we recorded at, the sound will play back slower and lower-pitched than normal. Just like slowing down a tape. And the opposite when you speed it up.

This is how we can get away with recording just one note on an instrument. You can play any note by playing the recording back at different speeds! If it's just a single note on an instrument, you won't notice it's being played back slower. You're just aware that it's lower pitched.

Of course there's a limit. Play an instrument back too fast or slow, it'll start sounding unnatural. In this case you might need to record more than one note to cover the musical range you want.

And obviously if you record a loop of music, playing it faster or slower will change its tempo as well as the pitch.

Sample Memory Consumption

The Amiga uses 8-bit samples. This means that each individual voltage reading is stored as a single byte (representing numbers 0 to 255).

The amount of memory you use is the length of the recording multiplied by the sample rate. Sampling at the maximum quality of 28,000 samples per second will fill your Amiga 500's standard 512KB memory in 18 seconds.

This is why Amiga music usually samples single notes on individual instruments. Much less memory used than a complete 3 minute piece of music!

Looping Samples

The Amiga can save memory by looping samples. Let's say you're writing some piano music. Ideally you'd record a piano note for its full length. Then if you want to play a note, just play back the sample. Let go of the key? Just stop the sample playing.

But a piano note rings on for a long long time. That's going to be a really long (and big) sample!

Apart from getting quieter, the sound of a piano doesn't change much as the note fades away. So we can cheat by looping a short snippet of a piano sound.

Then we just slowly turn the channel volume down to simulate the fading away of the note!

There's an art to this. If the looped section is too short, it sounds too artificial. Too long and it wastes memory. Then you need to be careful around the join - where the end of the sample meets the start again. You need to trim the sample exactly to avoid any clicks or discontinuities. Sample editing programmes have tools to help you.

There's another advantage to looping a sample and turning the volume down. The sampling process introduces some background noise which sounds like tape hiss. Not noticeable on loud sounds, but audible on quiet ones.

If you record a full-length piano note, the background noise would become audible as the note fades away. But if you loop a full-volume snippet of piano sound? When you turn the channel volume down, the background noise turns down along with it! It never becomes audible.

Modulation

The Amiga can actually synthesise new sounds by using one channel to alter the volume and/or frequency of another. These techniques are referred to as Amplitude Modulation (AM) and Frequency Modulation (FM). Apart from their use in radio broadcasting, these techniques are also found in some synthesisers.

This is more useful for a composer than a game developer. Using modulation cuts your available channels in half. You're not going to produce very complex music with only two channels! Hence, this technique is not often used in games or demos.

But as a tool available to the composer, it can be very handy. A composer can synthesise a new sound using the Amiga, then record this sound back into the Amiga as a complete sample. Now that sample can be played back economically on a single channel!


The AGA Chipset

There are two new Amigas on the market: the Amiga 1200 and the big-box Amiga 4000! There are also rumours of a CD32 games console coming soon using the same innards as an Amiga 1200.

The main difference between these new Amigas and the older ones is the new AGA Chipset.

The new chipset is backwards-compatible with the old one, but it gives you some exciting new features!

Improvements and new features

256 colours

That's right, just like the newly-released VGA card for the smelly PeeCee, the Amiga has a palette of 256 colours now! Every single one of those colours can appear on-screen at the same time, no tricks or limitations.

And every single one of those colours can be set independently. No tricks like extra-halfbrite mode needed.

A palette of 16.7 million colours

Remember how the old Amiga chipset let you set each colour in the palette using 16 steps of red, green and blue? Well, now you can use 256 steps of red, green and blue! This is as many shades as the eye can see!

Now you can really make use of those new 256 colours to make really smooth gradients and shading.

New resolutions!

You still have low-res and hi-res modes. But now you have super-hires and VGA too!

Super-hires is 1280 x 256 pixels and is designed for a C= 1084 monitor or television. VGA is specifically for VGA monitors and gives you 640 x 480 pixels without interlacing flicker! No external flicker-fixer needed.

Use any resolution with any number of colours!!!

That's right, the age-old tradeoff between resolution and colours is history!

Want a HAM screen in 1280 x 256 pixels? No problem! Or a dual-playfield screen at 640 x 480 VGA? Easy with the new AGA chipset.

Workbench in hi-res mode but in 256 colours? It can do that too.

Of course at the extremes of these settings you'll get some slow-down. But the AGA chipset never outright says "no" like the old one!

A brand new HAM mode

The old HAM mode is still present, but it's joined by its new pal: HAM8. Of course it can be in any resolution too!

HAM8 gives you 64 shades of each colour to work with, and 64 colours in the palette. The result? 262,144 colours on screen at once, and much less colour fringing! At the new higher resolutions, you won't be able to tell the difference between computer graphics and television!

Faster Chip RAM

The bottle-neck of Chip RAM has been reduced by speeding it up. Chip RAM is now 32 bits, which suits the 32 bit native CPUs now shipping with the new Amigas. This alone gives you twice the throughput! On top of that, Chip RAM runs in so-called burst mode. It doubles the speed of Chip RAM again, with some caveats!

Some improvements to the game features

Dual-playfield mode has been doubled to 16 colours, for each of the foreground and background. Much more useful! And you get to choose which of the 16 available banks of 16 colours to use for each layer!

The hardware sprites have seen a boost too. They can now be 64 pixels wide, and you can choose which of the 16 banks of 15 colours to use for them!

IDE Hard Disk Support

The new Amiga models include support for affordable IDE hard disks as standard. Just pop the lid of the Amiga and plug one in! No need for expensive SCSI hard disks and hard disk controllers any more.

Technically this isn't part of the AGA chipset, it's just a feature of the new Amigas in general. The newly-released Amiga 600 uses the older chipset but also has IDE support.

At long last, we can look forward to a future where disk swapping and three floppy drives are distant memories! And reclaim the space used on your desk by those thousands of floppy disks piled up.

The missed tricks

Unfortunately Commodore missed some tricks this time. Perhaps they're saving these features back for their amazing new chipset. Expecting that any time now. It's right around the corner, honest!

VGA support is limited

Yes, the new AGA chipset can produce VGA modes no problem. But it's not quite the same as plugging a flicker-fixer into the back of your Amiga.

The new VGA mode requires software support. This works fine in Workbench, and programmes designed to play nice with Workbench.

Where it doesn't work is some older programmes. And almost all games and demos which ignore the operating system completely!!!

Unfortunately this means that if you plug a VGA monitor in your new Amiga, you won't be able to run games or demos. You'll need a second monitor or TV alongside for that stuff.

What a bummer!

Of course you can get a fancy multi-sync monitor. These will support the standard Amiga modes as well as the new VGA mode. That's what Commodore expect you to do. But they aren't cheap. Of course it's no problem for them bloody yanks is it? They're rolling in dough. For us British and European peasants, it's a big fucking deal.

The blitter is still 16-bit and 7MHz

What the hell were they thinking?! They make a 32-bit system, the chip RAM (kind of) runs at 14MHz. But they keep the blitter unchanged from the original chipset!!!

Fucking mental.

Now it's actually quicker to use the CPU to do the blitter's work. Especially with the faster CPUs now coming in Amigas like the 68020/68030/68040.

This is embarassing, Commodore. Knock it off. An Amiga is an Amiga. It's supposed to use its custom chips. Not avoid them at all costs!!!

The hardware sprites still suck

Sure they're wider now. And you can more freely choose the colours. But you're still limited to 8 per scanline! And only 4 when you're using 15 colour sprites!

Come on Commodore. Some of these silly Japanese gaming machines can now do 32 sprites per scanline! Yeah you can probably reach that using BOBs instead, but you're going to lose the race at this rate. What about the next generation of Japanese machines that can do 64 or 128 sprites per scanline? Your shitty 16 bit blitter won't even keep up!

You could use the CPU to keep up I guess? But they're not even BOBs then. More like COBs. Corn on the bloody cob. Commodore are going to get eaten by the Japanese and shat out like sweetcorn at this rate.

Don't forget the smelly PeeCee has faster and faster CPUs too. You don't want to be relying on the CPU. The Amiga is about custom chips!!!

I'm getting angry now.

No fucking Fast RAM in the Amiga 1200!!!

I'm going to fucking lose it. I can't believe you did this Commodore. You fucking morons. I'm going to lose my shit and throw my Amiga out the window. HOW FUCKING DARE YOU!!!!

You put a 14MHz CPU in the Amiga 1200. But it can't use the burst mode properly so it runs at 7MHz!

What the fuck?!?!

You halved the speed of your CPU because you couldn't be bothered to put Fast RAM in there!!!

I can't believe you sometimes.

You deserve to go bankrupt and get bought out by some German geezers at this rate.

Yes it has a cache but that's shit. Apple relied on their cache too and they're nearly bankrupt. All their machines are shit. Always have been, always will be. And yours are going that way too, Commodore. Have you ever seen a Macintosh in real life? No? Thought not. At this rate you'll never see an AGA Amiga in real life either.

Knock it the fuck off.

The audio hardware is still the same

Yes, same as in 1985. Paula is completely unchanged.

OK the Amiga still has the best sound on the market. But this is not how you run a business, Commodore. You need to keep your eye on the ball. You could lose everything if you don't keep well ahead of everyone else.

No high-density floppy disk support

Yep, Paula is completely unchanged. That means it can't support the new high density format floppy drives appearing in smelly PeeCees.

I can see this being a big problem in the future.

You want to swap files with your PeeCee at work? Forget it. Unless you put a bit of tape over that floppy and reformat it double-density.

What about when nobody makes double-density floppy drives any more? What are you going to do then Commodore? Really? Are you going to make your own fucking floppy drives? From what? Blu-tack and tin foil?

For fox sake.

Yes I know the big box Amigas can support the high density disks now. But they have weird custom drives that run at half speed. That's not sustainable! Who's going to make a weird drive like that for you when your market share is falling?

I am getting angry.

I am going to buy an Atari Falcon and flush my Amiga.

I am losing my shit.


The Atari Falcon

A better machine than the Amiga in every way. This is what we'll cover now.

Atari Falcon Amiga 1200
CPU 16MHz 68030 with MMU and data cache 14MHz (7MHz) 68020 (no MMU or data cache)
Co-processor(s) Blitter, 32MHz 56k DSP with dedicated X/Y RAM, optional FPU Copper
RAM 1MB, 4MB or 14MB 2MB, expandable officially to 10MB
Hard disk support: IDE (internal) and SCSI-2 (external) IDE (internal) only
Blitter 16MHz 7MHz
Max colours (no tricks) 65,536, true-colour 256, palette only
Max VGA resolution (non-interlaced) 736 x 512 640 x 512
VGA support Works in games and demos Workbench only
Chunky pixel mode: Yes No
Hardware scrolling 1 layer 2 layers
Hardware sprites None 8 per scanline
Audio bits: 16 bits 8 bits (14 bits with tricks)
Max sample rate 50kHz 56kHz or 28kHz (depending on screen mode)
Audio format: 8 channels I/O, 7.1 surround compatible, ADAT digital audio compatible (for recording studio integration) Stereo only
Audio recording? Yes, hard-disk recording compatible Optional sampling cartridge, not compatible with hard-disk recording
Audio channels: Limited only by DSP power (32 or more easily) 4
Audio effects: Limited only by DSP power (reverb, chorus, delay, compression, EQ, etc.) None
Floppy drive: High density, PC compatible as standard, drive door included Double density, PC compatible only with double density, with driver installed, drive door missing
Ports: Parallel, serial, monitor, TV, mouse, standard joystick, 2x extended joysticks, LAN, SCSI-2, MIDI, cartridge or dongle port, DSP port for 8-channel digital audio I/O Parallel, serial, monitor, TV, mouse, standard joystick, floppy drive, PCMCIA
Expansion options: RAM / accelerator, FPU RAM / accelerator, PCMCIA
Operating system: Unix-like pre-emptive multi-tasking with memory protection and resource tracking Pre-emptive multi-tasking, but no memory protection or resource tracking
Power supply: Internal External
Industrial design: Fully orgasmic Partially orgasmic

Oh no I can't afford it. Back to my Amiga.


More stuff under construction...


Back to Home