Home/Blog/The 16-Color Revolution: Analyzing PICO-8 vs. Commodore 64 Palettes
HISTORY & COLOR THEORY

The 16-Color Revolution: Analyzing PICO-8 vs. Commodore 64 Palettes

Compare the warm pastel saturation of PICO-8 against the moody luma-stepped VIC-II palette of the Commodore 64. How two fixed 16-color systems forged legendary visual identities.

PICO-8 • Commodore 64 • VIC-II • Luma Distribution

Sixteen colors doesn't sound like much.

It is enough to make a simple game. It is nowhere near enough to reproduce the colors in an ordinary photograph. Yet two very different 16-color systems ended up developing remarkably strong visual identities.

The Commodore 64 came first, with the VIC-II chip and its fixed 16-color palette. Decades later, PICO-8 deliberately adopted another fixed 16-color palette for a very different reason. One was a hardware limitation. The other was a design constraint.

They don't look remotely the same.

PICO-8 tends toward warm oranges, dusty pinks, soft blues, and bright greens. Its colors feel surprisingly comfortable together, even when a scene uses most of the palette.

The Commodore 64 palette is harder to describe with a single adjective. There are bright colors, but many of them are muted or slightly dirty. Dark blue, brown, purple, gray, and cyan dominate the overall impression. Put a typical C64 screen beside a PICO-8 game and the difference is obvious before you have time to think about it.

That difference isn't simply “old palette versus modern palette.”

It comes from how the colors are distributed.

1. Sixteen Colors Is Not Really the Interesting Part

Both systems give an artist sixteen colors to work with, but that number tells us very little by itself.

A palette can contain sixteen colors that sit very close together in brightness and saturation. Another palette can spread those sixteen colors across a much wider range.

The first one will tend to produce subtle images.

The second can make much stronger shapes.

This is particularly important for pixel art because color is doing several jobs at once. A single color might be part of an outline, a shadow, a material boundary, or a lighting effect. There aren't enough colors to give each job its own dedicated value.

So the palette has to do some of the design work.

PICO-8 makes this very obvious. Its 16 colors are not sixteen arbitrary swatches. They form a small working vocabulary. Artists learn very quickly which colors can act as shadows, which ones work as highlights, and which combinations produce a convincing separation between objects.

The C64 palette works differently.

Its colors were tied to the behavior and limitations of the VIC-II hardware and the display technology of the period. The result was never designed around today's idea of a carefully balanced “indie game palette.”

And yet it became one anyway.

2. The Commodore 64 Palette Has a Particular Kind of Darkness

The easiest mistake is to describe the C64 palette as simply “dark.”

There are bright colors in it. White is bright. Yellow is bright. Cyan can be very bright. But a large part of the palette lives in a relatively restrained range, and several colors have a noticeably subdued character.

That changes the way an image is constructed.

Consider a simple scene with a blue sky, green ground, and a character in the middle.

On a modern display, you might expect to separate those regions mostly through brightness and saturation. On the C64, the available colors don't always give you a clean ladder of values. Two colors can be quite different in hue while still sitting relatively close together in luminance.

That makes edges important.

Artists often get more mileage from the relationship between neighboring colors than from the colors themselves.

A brown object against black reads very differently from the same brown against dark blue. A cyan highlight can completely change the apparent material of a gray surface. Purple next to blue can create a boundary that would otherwise require another brightness level.

The palette encourages you to think in relationships.

That's one reason old C64 graphics can feel more atmospheric than their technical specifications suggest.

There is often a little visual tension between the colors.

They don't all behave like perfectly matched paint samples.

3. PICO-8 Takes the Opposite Approach

PICO-8's palette feels much more deliberate as a modern graphics system.

The individual colors are distinctive, but they are also designed to cooperate.

That matters when the same sixteen colors have to serve as sky, skin, foliage, buildings, UI elements, shadows, and highlights.

Instead of trying to give you many slightly different versions of the same color, the palette gives you colors that can be reused in different roles.

An orange can become a light source.

A darker purple can become a shadow.

A muted blue can work as either sky or reflected light.

A pink can be skin, sunset, or an accent color depending on what surrounds it.

This is a useful property in a small palette. You don't necessarily want a separate color for every object. You want colors that can change meaning depending on context.

PICO-8 is particularly good at this.

PICO-8 16-Color Palette Map
Figure 3.1: The canonical 16-color PICO-8 palette showing balanced warm-to-cool value ramps.
PICO-8 Platformer Game Scene
Figure 3.2: High-contrast sunset platformer scene in PICO-8 utilizing orange/pink light ramps against deep purple shadows.

Look at a typical PICO-8 scene and you'll often notice that the palette itself becomes part of the style. Even when the artwork changes completely, those recurring colors make different games feel like they belong to the same visual family.

That is not an accident.

It is one of the benefits of designing the palette before designing the artwork.

4. Warm Pastels vs. VIC-II's Uneven Color Steps

Put the two palettes side by side and the first thing you notice is not the number of colors. It's the temperature.

PICO-8 has several colors that are immediately useful for warm parts of an image: orange, red, pink, yellow. They can be used for skin, fire, sunset light, signs, UI elements, or just a small patch of color that needs to pull the eye forward. The cooler colors are still there, but they don't make the palette feel cold as a whole.

The C64 is different.

Its dark blue, purple, cyan, and gray tones show up everywhere in old graphics, often as part of the basic structure of the scene. A dark blue background doesn't necessarily feel like “the blue object.” It can simply be the space behind everything else. Cyan can become an outline or a lit surface. Purple can sit next to blue and create a boundary without needing a much brighter color.

That makes the palette feel less evenly distributed.

Comparative Palettes: Commodore 64, PICO-8, DB32, EDG16
Figure 4.1: Comparing fixed retro palettes: Commodore 64, ARQ16, ENOS16, DB32, PICO-8, and EDG16.

There are colors that work very well together, but they don't form the kind of neat modern color families you might expect from a deliberately designed pixel-art palette. Some combinations are surprisingly close in brightness, while others jump much harder than their hue difference suggests.

For an artist working at a small resolution, that matters.

If the background is already dark blue, changing an object to purple may not separate it very much. A small shift toward cyan or white might do far more. On PICO-8, an orange or pink accent can often perform the same job against a dark blue or purple background.

So the contrast strategy changes.

With the C64, color relationships often have to carry more of the separation. With PICO-8, the palette gives you more obvious warm-versus-cool combinations to work with.

That difference is easy to miss when looking at a palette chart. It becomes much clearer once those colors are actually arranged into a scene.

5. Luminance Is Where the Palette Starts to Make More Sense

Looking at hue alone doesn't explain why some combinations work and others don't.

Take a screenshot and remove the color information. What remains is the rough brightness structure of the image. For a quick approximation, you can calculate luma with:

Y = 0.299R + 0.587G + 0.114B

This isn't a model of human vision, and it shouldn't be treated as one. It is simply a convenient way to see how far apart colors are in brightness.

That's useful here because a 16-color palette isn't really sixteen brightness levels.

Some colors can be very different in hue while ending up surprisingly close in luma. Put those colors next to each other and the boundary may almost disappear when the image gets small.

This is one of the reasons a palette can look excellent as a row of colored squares and behave differently inside an actual game.

Imagine two areas in a 32×32 scene: one is blue and the other is purple. At full size, the distinction is obvious because your eye sees the hue difference. Reduce the image, though, and both regions may start reading as roughly the same dark mass.

Now change one of them to cyan.

The hue difference is still there, but the brightness gap has changed dramatically. Suddenly the edge is much easier to read.

This is the kind of decision pixel artists make constantly, often without calculating anything.

A good palette gives you colors that can be separated in several ways: hue, brightness, saturation, or some combination of the three. A less regular palette forces you to pay more attention to the particular pair of colors you are putting together.

That becomes especially important with sprites.

At 64×64, a character can afford some subtle shading. At 16×16, there may only be a few dozen meaningful pixel clusters left. If two clusters have nearly the same brightness, one of them may stop doing useful visual work.

The palette isn't just determining which colors are available. It is determining which boundaries are cheap and which ones are expensive.

INTERACTIVE PALETTE ANALYSIS

PICO-8 vs. Commodore 64 Palette Comparator

Compare luminance ladders, color distribution, and dithering gradient behavior side by side.

A 16-color palette is not sixteen uniform brightness levels. PICO-8 distributes its colors along a clean, warm luminance ladder, while the C64 VIC-II chip clusters multiple colors into dark, similar-luma bands with occasional sharp jumps.
PICO-8 (Modern Fantasy Console)16 Colors
White
96%
Yellow
86%
Peach
84%
Light Gray
77%
Orange
67%
Pink
65%
Blue
56%
Green
55%
Indigo
49%
Brown
41%
Dark Green
35%
Dark Gray
35%
Red
33%
Dark Purple
27%
Dark Blue
17%
Black
0%
Commodore 64 (VIC-II Hardware)16 Colors
White
100%
Cyan
89%
Yellow
88%
Light Green
83%
Light Grey
73%
Light Red
63%
Orange
61%
Green
51%
Purple
49%
Grey
47%
Light Blue
43%
Brown
28%
Dark Grey
20%
Red
16%
Blue
8%
Black
0%

6. The C64 Palette Came From a Video Chip

The history behind the C64 palette is quite different from the history behind PICO-8.

The Commodore 64 was released in 1982, and its colors came from the VIC-II graphics hardware. The chip wasn't trying to give pixel artists a tasteful set of sixteen colors. It was generating a video signal.

Authentic Commodore 64 Computer Hardware (1982 'Breadbin')
Real Hardware: Original 1982 Commodore 64 “breadbin” computer powered by the MOS Technology 6569 VIC-II chip.
Authentic Commodore 1084 Color CRT Video Monitor
Analog Display: The Commodore 1084 color CRT monitor whose shadow mask and phosphors blended VIC-II composite video.

That distinction is easy to lose when looking at a modern palette file.

Today, we usually represent a color as something like:

RGB(52, 52, 52)

and treat that as a fixed fact.

The original C64 wasn't working with a web-safe RGB table.

MOS Technology 6569 (VIC-II) sRGB RI 1 Color Table
Figure 6.1: MOS Technology 6569 (VIC-II) digital sRGB approximations with luminance & chrominance phase offsets.

The VIC-II generated an analog video signal, and the final appearance depended on the display receiving that signal. CRT televisions varied. Video connections varied. Later revisions of the hardware varied as well. Even the surrounding colors and brightness of the display could change how a particular shade appeared.

So asking for the one “correct” C64 RGB palette is already a little misleading.

There are commonly used digital approximations, and they are extremely useful for emulators and modern tools. But they are approximations of a system whose output was ultimately meant to be seen through an analog display chain.

This also explains something about the character of C64 screenshots.

The slightly dirty blues, the subdued purples, the way neighboring colors seem to bleed into one another on a CRT — those things were not necessarily properties of an RGB palette sitting inside the machine. Some of the look came later, when the electrical signal became an actual image on a screen.

For modern pixel artists trying to reproduce that appearance, picking the sixteen RGB values is therefore only the beginning.

You also have to decide what kind of display you are trying to imitate.

A clean emulator screenshot and a photograph of an original C64 connected to a CRT can use the same underlying palette and still look noticeably different.

7. PICO-8's Limitation Was Designed First

PICO-8 starts from almost the opposite problem.

It isn't a historical machine whose limitations happen to remain interesting. The limitations are the product.

The small screen, limited palette, restricted drawing API, tiny cartridges — all of these rules are there because they make the machine feel different from a normal development environment.

The palette benefits from that context.

There are only sixteen colors, so artists quickly learn their roles. A particular dark purple might repeatedly become a shadow color. A pale yellow might appear in highlights. A muted blue might work across skies, water, interfaces, and distant objects.

PICO-8 Sprite Editor Interface
Figure 7.1: The PICO-8 built-in sprite editor. Notice the fixed 16 swatches instantly available for intuitive role assignment.

After a while, the question stops being “which of these millions of colors matches the object?”

There are only sixteen choices.

The more useful question becomes: which existing color gives the object the right visual role?

That sounds like a small distinction, but it changes how a scene gets built.

Suppose you're drawing a tree.

You don't necessarily need five different greens for leaves, branches, reflected light, and distant foliage. You might use one green for the main mass, a darker color for the shadow, and borrow a completely different color for the lit edge.

The image starts to become less about physically describing the tree and more about assigning a small number of colors to different visual functions.

That is one of the reasons PICO-8 graphics can feel cohesive even when the artwork itself varies enormously from game to game.

The palette is doing some of the style work before the artist has drawn anything.

8. The Important Part Isn't the Individual Color

A palette is usually shown as sixteen isolated squares.

That's convenient for documentation, but it isn't really how the palette is used.

The interesting question is what happens when two or three colors occupy neighboring pixels.

Dithering is a good example.

Suppose a background needs to transition between two colors but neither color has an intermediate shade available. Instead of creating a new color, the artist can alternate the existing ones:

A A A B
A A B B
A B B B
B B B B

From a distance, the eye averages some of those pixels together.

But that trick only works well when A and B have a useful relationship.

If the two colors are close enough in value, the pattern can suggest a continuous transition. If they are far apart, every individual pixel remains obvious and the pattern becomes part of the texture.

Hue matters too.

A blue-to-cyan transition can suggest sky or water. An orange-to-yellow transition can read as light. A purple-to-green transition may be much harder to interpret as a natural gradient, even if the two colors look attractive when placed next to each other.

This is where PICO-8's carefully constrained palette becomes particularly useful. There are enough strong color relationships to build gradients, shadows, and lighting effects without adding new colors.

Commodore 64 Train Game Scene with Dithering
Figure 8.1: C64 landscape using patterned stipple dithering across tracks and hills to imply gradients.
Commodore 64 Creatures Platformer
Figure 8.2: Mayhem in Monsterland on C64: intricate dithered wooden pillars and skies overcoming the 16-color limit.

The C64 has its own combinations, but they often produce a more visibly patterned result. That's not necessarily something an artist needs to hide. In many C64 games, the pattern itself becomes part of the image.

You can see the limitation.

And eventually, you start seeing the artist's solution to that limitation as well.

9. Sixteen Colors Can Lead to Very Different Images

The specification makes the two systems sound almost identical.

Both have sixteen colors.

That's about where the similarity ends.

The C64 palette came out of the requirements of a real graphics chip and an analog video system. The colors were not created to satisfy today's idea of a harmonious pixel-art palette, and the display itself became part of the final appearance.

PICO-8 was built much later with the opposite intention. Its restrictions are explicit. The palette is small because the small palette is part of the machine's identity.

You can see the consequences in the artwork.

C64 graphics often get a lot of mileage from dark fields, unusual color pairings, dithering, and textures. The palette doesn't always hand you an obvious foreground/background combination, so the artist has to find one.

PICO-8 tends to make those relationships easier to control. Warm accents stand out against cool backgrounds. A small set of recurring colors can cover characters, scenery, lighting, and interface elements without making the image feel like it is constantly changing its visual vocabulary.

Neither approach needs to be treated as a winner.

They are solving different problems.

And that is what makes the comparison useful for modern pixel-art tools. If you're reducing a photograph to sixteen colors, simply asking for the “closest” sixteen RGB values is not enough. The palette needs to have enough separation for important edges, enough tonal range for shading, and enough compatible colors that dithering doesn't turn into noise.

Real Photograph Quantized to PICO-8 vs Commodore 64 16-Color Palettes
Figure 9.1: Real-World Photograph Quantization Benchmark (Continuous Tone to 16 Colors)
PICO-8 (Center): Soft skin and warm stone tones emerge naturally using Peach (#FFCCAA) and Indigo (#83769C).
Commodore 64 (Right): The low-luma VIC-II clustering relies heavily on high-contrast Cyan (#AAFFEE) and Light Grey (#BBBBBB) dither steps.

The number 16 tells you how many choices you have.

The arrangement of those sixteen colors determines how many useful images you can actually make with them.

EXPERIMENT WITH 16-COLOR PALETTES IN PIXKIT

Test PICO-8 & C64 in PixKit Studio

Switch instantly between PICO-8, Commodore 64, Game Boy, and custom 16-color palettes. Upload your images and compare luminance quantization with live Bayer and Floyd-Steinberg dithering.

Ready to Pixelate Your Own Images?

Launch PixKit Studio now to convert photos, game screenshots, and concept art into authentic retro pixel art. Free, instant, and runs 100% in your browser.

Topic Cluster & Next Reads
View All 10 Guides
← Back to All GuidesPixKit Retro DevLog • Published

Cookie & Privacy Notice

We use cookies to analyze web traffic and support Google AdSense advertising. Your uploaded images remain 100% private in your browser. Review our Privacy Policy.