Amiga Halfbrite mode


Extra Half-Brite mode is a planar display mode of the Commodore Amiga computer. It uses six bitplanes. The first five bitplanes index 32 colors selected from a 12-bit color space. If the bit on the sixth bitplane is set the display hardware halves the brightness of the corresponding color component. This way 64 simultaneous colors are possible while only using 32 color registers. The number of color registers is a hardware limitation of pre-AGA chipsets used in Amiga computers.
Some contemporary game titles and animations used EHB mode as a hardware-assisted means to display shadows or silhouettes. EHB was also often used as general-purpose 64 color mode with the aforementioned restrictions.
Some early versions of the first Amiga, the Amiga 1000, sold in the United States lack the EHB video mode, which is present in all later Amiga models.

EHB Sliced Mode

With EHB palette switching, it is possible to produce yet more colors in a single image; this can be achieved by splitting the image into multiple horizontal blocks, between which the color registers are modified during the vertical scan. This is not an official graphics mode, but a software technique made possible by the hardware. For example, by switching the palette eight times during a vertical scan, it is possible to produce up to 512 on-screen colors. Each section in this case would as before still contain 64 colors with 32 of those chosen freely and the other 32 being the same colors again but at half the brightness.
This method brings with it a new set of restrictions in that any graphics within one slice may not be easily transferable to a different slice unless each slice is devised to ensure they contain common colors. For any graphic image to be freely movable within this scheme without corruption then all of its colors must appear in every slice it moves to. This creates a trade-off in that the larger the sum total of colors appearing anywhere in freely movable objects the fewer the number of colors which can be freely chosen in any of the slices they move to.

Comparison to EGA

Although the IBM PC Enhanced Graphics Adapter standard offers a fixed 64 color space, it only allows 16 simultaneous colors, and then only in the relatively slow and barely accelerated high-res mode. Hi-res also required a dedicated EGA monitor - the lower resolutions use 16 fixed colors, identical to those of the CGA RGBI palette, for compatibility with older RGBI monitors.
EHB exceeds this by allowing 32 colors out of 4096 plus their half-bright counterparts, at 320x200 to 360x576, on a standard composite-video or video-frequency RGB monitor. The Amiga could easily display any 32 EGA colors, but not all 64 simultaneously. It could also display at 640x400 to 720x576 using any 16 colors out of 4096 on a composite monitor with the same Agnus/Copper graphics acceleration facilities as in low res.

Comparison to VGA

The VGA standard, introduced with the 1987 IBM PS/2 platform standard, includes a range of industry standard graphics modes, including hardware-text and pixmap graphics output, combining all the modes offered by the previous CGA and EGA standards with new all-points-addressable packed-pixel modes. VGA Mode 13h, one of the standard modes, offered random-access 256 colors per-pixel modes from a total 18bit palette of 262,144 colors, offering 64 shades each of red green and blue.
As well as its standard modes, VGA also exposed registers to the programmer permitting fine control over the screen mode. Among the things achievable by manipulating the registers directly sere what become known as Mode X, Mode Y and Mode Q. Mode X increased the resolution of Mode 13h to 320x240 and enabled a planar mode which allowed the full 256K VGA video RAM to be used to store up to four graphics back buffers of the same resolution. This enabled smooth screen refreshes and page flipping. Mode Y was the same but in 320x200 mode. Mode Q, a mnemonic for "cube" set up a 256x256 resolution screen with 256 colors. This made graphics benefiting from screen plotting algorithms, such as those found in 3D rendering, trivial to implement because the X and Y screen address could be derived simply by pointing at the graphics array using the segmented memory features of the Intel architecture so then the Y and X pixel coordinates respectively commute directly to the high and low byte of a 16bit screen address, making the usual multiplication to calculate the Y offset unnecessary.
Using the VGA registers the standard allowed screens from 512 to 800 pixels in width in 16 colors and from 256 to 400 pixels in width with 256 colors. The vertical resolution can be varied between 200 and 600 lines, adjusting the display refresh rate between 50 and 70Hz. This would typically be used in conjunction with a multiscan VGA monitor capable of dynamically switching between different video refresh rates depending on the input signal.