This tutorial will demonstrate how to convert a modern 24 bit color image file into a 16 color Atari ST or 32 color Amiga picture using the GIMP. This will result in images which use the correct matching colors of these classic rival 16 bit computers.
The Atari ST
The early Atari ST models support 3 bits per RGB color component which allows for a total of 512 unique colors. Each of the red, green and blue components had 8 intensity levels. These were specified as values from 0 to 7.
The ST had 3 different screen resolutions. A 640 x 400 monochrome mode, a 640 x 200 medium resolution mode which supported 4 on-screen colors, and a 320 x 200 low resolution mode which supported 16 on-screen colors. All of these screen modes used the same amount of video ram and sacrificed color for increased resolution. This article will be concentrating on the 320 x 200 mode with 16 colors.
There are various software techniques that enable the color palette to be changed every scan line, or even multiple times during a single scan line (Spectrum 512) but this article will be concentrating on the standard 16 colors per screen mode.
The Commodore Amiga
The original Amiga supports one extra bit per RGB color component than the Atari ST. This enables it to display 4,096 unique colors by supporting red, green and blue values with 16 different intensities each.
The Amiga is capable of displaying a variety of different screen modes. We will be concentrating on the common 320 x 200 mode where the Amiga can easily display 32 simultaneous colors selected from it’s 4,096 colors.
It should be noted that the Amiga supports additional graphics modes like Extra Half Bright and Hold and Modify (HAM). However, this article will concentrate on the 32 color mode.
The Atari STE
In response to Commodore’s Amiga, Atari would later upgrade it’s aging ST platform by releasing the STE (enhanced) series of computers. While they still only supported 16 colors in low resolution (without resorting to cpu assisted graphics modes which could boost the on-screen color count), these colors were selected from 4,096 colors which matched the Amiga.
By increasing the color gamut eightfold, color transitions were smoother and it was possible to reproduce colors with greater accuracy. We will create a 320 x 200 Atari STE image in this article supporting the increased color fidelity.
In summary here is what we will be creating :
- Atari ST 16 color (from 512 colors)
- Atari STE 16 color (from 4,096 colors)
- Amiga 32 color (from 4,096 colors)
The GNU Image Manipulation Program (Gimp) is a free and powerful open source bitmap image editor that we will be using to create our images with. It is freely available on multiple platforms (Windows, Macintosh, Linux and more) and can be installed in minutes.
It is entirely possible to perform these same tasks with other image editing programs. We have chosen the Gimp for this article because we appreciate it, but feel free to use your own favorite bitmap editor. However, it must be able to convert images to indexed color, and you must be able to work with and manipulate the individual color palette entries.
The Source Image
Likely the image that you will be converting from will not be 320 pixels wide and 200 pixels in height. So the first thing you will need to do is to resize and crop your source image to match this resolution.
Below is the 24 bit color image which we will use to demonstrate the techniques in this article. The ST uses 9 bits (3 each for red, green and blue) to describe an RGB color, whereas the STE and Amiga use 12 bits (4 for each color component). 24 bit color uses 8 bits for each of the color components and we will need to convert these down to either 9 bits or 12 bits depending on our desired target platform.
Merely converting our image above to 16 or 32 colors in the Gimp is not enough to have the colors accurately represent Atari ST or Amiga colors. Our online Color Bit Depth Reducer is a simple utility that will convert a single 24 bit RGB color into a variety of lower bit depths. First however, we need to reduce our image to either 16 or 32 colors.
Converting to indexed color
Once you have your appropriately sized (320×200) 24 bit source image you next need to convert it to indexed color by changing it’s mode in the Gimp’s Image menu to Indexed. When changing the image mode from RGB to indexed, you will be reducing the colors in the image to a select few. Obviously we will want to select 16 for ST/STE images or 32 for Amiga images. Ensure that Generate Optimum Palette is selected and enter the number of colors you wish to reduce to as below.
Dithering is simply a conversion technique that creates a dot pattern which can smoothen color transitions in an image. The effectiveness of dithering depends on the source image. It is recommended that you try the various types of dithering, as well as no dithering, with your image to determine the best result.
The Gimp provides three types of dithering : Floyd-Steinberg (normal), Floyd-Steinberg (Reduced Color Bleeding) and Positioned. Again, trial and error is your friend here.
Click the convert button to perform the image conversion and you will now have a 320 x 200 image in 16 or 32 colors. Chances are that an ST or Amiga will not be able to display the resulting colors accurately though because they are chosen from a 24 bit color gamut.
Converting the colors to match ST or Amiga colors
We next alter the individual color palette entries to the nearest matching colors in which the ST and Amiga are capable of producing. Open the Gimp’s Colourmap window (or tab) and you will see the color palette for the image as below :
To modify the individual colors you can either double click on a color to bring up the color editor, or simply enter the HTML notation (also known as Web Hex) directly.
We need to run each color through the Color Bit Depth Reducer utility in order to find the correct color for the bit depth we require. Once we have completed this task, we will then have a color accurate representation of an ST or Amiga image.
You may find during this process that you wind up with duplicate colors in your palette. ST images in particular are quite vulnerable to this due to a limited ability to produce subtle differences between colors. In this case you could re-use the color in other areas of the image with new color values. However, you would first need to search for all occurrences of the color and replace them with one of the duplicate colors.
Another option to deal with duplicate colors is to bias their color components up or down in red, green or blue so as to create a transition color. This is often seen on the ST though it can have a negative effect on color accuracy. It can however increase the number of usable on-screen colors.
Removing noise and cleaning up the image as necessary
It may be desirable to remove noise or artifacts from the image that were created as a result of the conversion process. Below you can see noise in the left image (before) which is removed in the right image (after).
Zoom in as much as 400% to 800% and use a one pixel pencil to manually tweak the colors of the pixels as necessary. If you used dithering during the color conversion then there will likely be more of these noisey pixels to deal with.
Atari ST 16 color version
The aforementioned color biasing tweak was applied to the image below to increase the number of on-screen colors as there were a few duplicate colors produced during the conversion process. Overall the colors are quite different from the original image. This is partially due to the fact that they had to be selected from the ST’s relatively small color gamut of only 512 colors as well as the color biasing that was performed.
Atari STE 16 color version
With the number of on-screen colors remaining the same, you can see how much better things look when the colors are selected from the larger color gamut of 4,096 colors. The STE version did not use any color biasing tweaks and is much more accurate and true to life in terms of color.
Amiga 32 color version
Doubling the number of colors to 32 and selecting from 4,096 colors gives the Amiga the edge when it comes to the overall detail level of the image. The Amiga version is clearly a step beyond what the 16 color STE can achieve in this regard and closest to the original 24-bit image.
Both the ST and Amiga are capable of displaying the original source image better than they have been represented above when using alternate or cpu-assisted screen modes. You could also spend more time manually editing the images for better results.
This article was about learning some of the fundamental differences between these platforms. If you were tasked with converting several images in this way you would be far better served to use a utility that can convert all the colors in your source image in a single automated pass. Using the Color Bit Depth Reducer as detailed in this article is mainly for educational purposes and would be far too tedious otherwise.