Artifact Emulation

CoCoVGA currently supports these types of NTSC artifact color emulation:

  • Standard - this is simple emulation where monochrome pixels are taken two-at-a-time to produce one of four colors while preserving the resolution of the current RG monochrome mode.
  • "Fat bits" - similar to simple emulation, however pixels are doubled in width.
  • "smArtifact" - a simple 6-tap filter which attempts to improve readability of text while producing more colors than either standard or "fat bits" modes. 8 colors can be produced by various 6-pixel patterns.
  • MAME/MESS - a 6-tap filter which is a port of the C algorithm embedded within MAME/MESS for 6847-based NTSC systems such as the Color Computer. 16 colors can be produced by various 6-pixel patterns. Default color register values were also interpolated using the MAME/MESS algorithm.

Color Palettes

As described in Software Mode Control under CoCoVGA register addresses and Artifact Palette Register Summary, there are two sets of 16 (for a total of 32) artifact/VG6 palette register pairs. Each set of 16 register pairs applies to a particular CSS (6847 VDG Color Set Select control pin). On the Color Computer and Dragon, these are black/white and green/dark green color sets.

Color Selection

In the following tables, colors are specified as 15 bit binary values. The most significant 5 bits specify red, the middle 5 bits specify green, and the least significant 5 bits specify blue. For more details about how to interpret these values, see Software Mode Control's General Palette Register Description.

Standard/Fat Bit Color Selection

Only palette register pairs 0, 9, 10, and 15 are used from each set for each CSS. Rows highlighted in green are swapped when artifact color swap is requested by way of the button board or Software Mode Control's color swap bit within the artifact register.

2-bit Pixel Pattern Artifact Palette Register Pair CSS 1 defaults CSS 0 defaults
2'b00 0 black 15'b00000_00000_00000 dark green
15'b11111_11111_11111
2'b01 9 red 15'b10100_00000_00000 15'b00000_11000_00000
2'b10 10 blue
15'b00000_00000_11000
15'b00000_10000_00000
2'b11 15 buff (white)
15'b11111_11111_11111
green
15'b00000_11111_00000

MAME/MESS Color Selection

All 16 palette register pairs are used for each CSS. In the below, a letter "x" denotes a "don't care," meaning that the bit may either be a 0 or a 1. Note that odd palette register pairs can be swapped with their next even register pair when artifact color swap is requested by way of the button board or Software Mode Control's color swap bit within the artifact register. For example, dark purple (palette register pair 1 for CSS 1) and dark green (palette register pair 2 for CSS 1) could be swapped depending on the color swap configuration of CoCoVGA.

6-bit
Pixel Pattern
Horizontal Position
(0 = even, 1 = odd,
x = even or odd)
Palette Register Pair CSS 1 defaults CSS 0 defaults
6'b00000x x 0 black
15'b00000_00000_00000
dark green
15'b11111_11111_11111
6'b000010 0
6'b000011 0
6'b010010 1
6'b10000x 1
6'b10010x 0
6'b110010 1
6'b000110 0 1 dark purple
15'b00100_00000_00100
15'b00000_01000_00000
6'b000111 0
6'b01100x 1
6'b100110 0
6'b100111 0
6'b11100x 1
6'b000011 1 2 dark green
15'b00000_00100_00000
15'b00000_01000_00000
6'b010011 1
6'b100011 1
6'b11000x 0
6'b110010 0
6'b110011 x
6'b000110 1 3 light purple
15'b11100_11000_11100
15'b00000_11000_00000
6'b01100x 0
6'b100110 1
6'b001100 x 4 light green
15'b11000_11100_11000
15'b00000_11100_00000
6'b001101 0
6'b101100 1
6'b00010x 0 5 dark blue
15'b00000_00100_10100
15'b00000_01000_00000
6'b01000x 0
6'b000010 1 6 dark red
15'b01100_00100_00000
15'b00000_01000_00000
6'b001000 1
6'b100010 1
6'b101000 1
6'b00010x 1 7 light blue
15'b01100_10000_11100
15'b00000_10000_00000
6'b10010x 1
6'b001000 0 8 light red
15'b11100_11000_01000
15'b00000_10100_00000
6'b001001 0
6'b00101x 0
6'b00101x 1 9 red
15'b11100_01000_01000
15'b00000_11000_00000
6'b01101x 1
6'b101000 0
6'b101001 0
6'b10101x x
6'b11101x 1
6'b01010x x 10 blue
15'b00000_10000_11100
15'b00000_10000_00000
6'b010110 0
6'b010111 0
6'b11010x x
6'b110110 0
6'b110111 0
6'b000111 1 11 cyan
15'b11000_11100_11100
15'b00000_11100_00000
6'b010111 1
6'b01110x x
6'b100111 1
6'b110111 1
6'b11110x 1
6'b001110 x 12 yellow
15'b11100_11100_01100
15'b00000_11100_00000
6'b001111 0
6'b101110 x
6'b101111 0
6'b11100x 0
6'b11101x 0
6'b01000x 1 13 dark dark blue
15'b00000_00000_00100
15'b00000_01000_00000
6'b010010 0
6'b010011 0
6'b11000x 1
6'b001001 1 14 dark dark red
15'b00100_00000_00000
15'b00000_01000_00000
6'b10000x 0
6'b100010 0
6'b100011 0
6'b101001 1
6'b001101 1 15 buff (white)
15'b11111_11111_11111
green
15'b00000_11111_00000
6'b001111 1
6'b010110 1
6'b01101x 0
6'b01111x x
6'b101100 0
6'b101101 x
6'b101111 1
6'b110110 1
6'b11110x 0
6'b11111x x