This is a beginner level article about setting up a 16 color palette.
Contents |
The palette
One of the advantages of the MSX2 video chip compared to the video chip used in the MSX1 is the palette. In context of games, among other purposes too, this has certain advantages:
- It allows you to change the mood of scene easily (dark for eerie environments, bright for happy environments).
- It allows new colors that aren't possible with the MSX1 video chip, such as tree brown, skin color and dark grey.
- It allows delicate color differences which can be used to place objects far away, simulating distances within an atmosphere (like fog). In more advanced video chips, such as the v9990, these differences can be even smaller.
- Shades, the video chip in the MSX1 only offers a few practical shading colors.
When you're designing an MSX2 game, for example a typical game in screen 5, there are basically three ways to handle the palette:
- One optimal palette for the whole scene.
- One or more color splits to change one or more colors, these changes occur at whole horizontal lines and there's a limit as for the amount of colors you can change per line.
- A combination of one of the first two options, combined with having one or more dedicated colors which can change among scenes, e.g. reserving colors for unique enemies.
Depending on game design, it may be essential to have an all round palette that can be used for the essential graphics.
The optimal palette
The discussion for the optimal palette also takes place among pixel artists for other retro systems. The C64 community often claim that the (fixed) C64 palette is a good and practical one. Compared to the fixed and bright candy colors of the MSX1, a C64 has a lot more darker shades and a few essentials such as brown and dark grey.
While limited, fixed palettes aren't always bad. Konami made a lot of fine looking MSX1 games with the fixed MSX1 palette, and the amount of C64 games is even bigger. What's essential is that a fixed palette offers colors you can use for a lot of graphical objects, and offers enough shade combinations.
The set up of such a fixed palette may change per game genre and per pixel artist, nothing is ever set in stone. The suggestions below are purely in context of this beginner article, to provide something to build upon. Also, the colors aren't optimized for sprite usage where the OR-color is involved, these colors are ordered to represent ramps of colors.
Colors
The basics
Some color shades are essential in about every palette. A first set up only involves eight colors.
Color | RGB | Color | Color | RGB | Color |
---|---|---|---|---|---|
0 | 000 | 8 | 300 | ||
1 | 000 | 9 | 520 | ||
2 | 000 | 10 | 741 | ||
3 | 000 | 11 | 773 | ||
4 | 000 | 12 | 777 | ||
5 | 000 | 13 | 467 | ||
6 | 000 | 14 | 237 | ||
7 | 000 | 15 | 005 |
Red-orange-yellow-white
This is a warm shade. Examples of applications are:
- fire
- roof tops
- white/yellowish walls
- bread
- skin, although this would be skin in a somewhat darker environment such as a sunset. A real 'daylight' skin tone could be perfectly included in this shade however.
- hairs
- fire-enhanced magical weapons and armoury (swords, shields, helmets, boots)
- jewelry
- wood (furniture)
- tree bark
- sand, desert, sandy paths
Blue-cyan-white
This is a cold shade. Examples of applications are:
- water
- ice
- snow
- rooftops
- hair
- daylight sky with clouds
- cold-enhanced weapons and armoury (swords, shields, helmets, boots)
- jewelry
- forests at night
Green for warmth
With just two shades, in which white should even be a shared color, a lot of adventure objects are possible already with these eight colors. They can also be applied easily to shooters and other game types. The common factor in these two shades is the green component. Both shades start with a primary color (red and blue) after which it's mainly the green component that 'warms up' this primary color (a color utilizing one component) into a secondary color (a color utilizing two components). Because green is a bright color, the effect of this warming up can be quite radical, which transforms these shades into a wide family of colors. This wider red-orange-yellow-white shade features more practical applications than the MSX1 shade red-white.
Green for nature
The two shades above don't feature any primary green. For trees, forests, plants and grass and earth a few greens are essential - at least in spring and summer.
Pure green
In a way, three green shades should do. This allows trees (with two shades) to stand out above grass (also with two shades). These green shades can be primary colors with red or blue components involved to lighten the color, not to warm up the color into a secondary color: [0,3,0] - [1,5,1] - [2,7,2]. The advantage is that the green family as a whole is firmly represented; any green shade you pick will always be green.
Green bordering yellow and blue
The disadvantage of pure green is that this shade more or less stands on its own, it may not be satisfying to use these green shades in the earlier 'warm' and 'cold' shades. Green bordering yellow and blue could mean these 'green' colors: [0,3,4] - [0,5,0] - [4,7,0]. With these adjustments, the darkest green (4,7,0) borders blue, meaning that the dark blue can be used as an extra darker shade in the green ramp. This can be very practical for trees in a twilight environment or trees that are a bit blueish by them self, such as the Blue Spruce (Picea pungens). The brighter green (4,7,0) borders yellow, making it an excellent extra color to use between green grass and yellow sandy paths. An extra bonus of this method is the dark green color, which actually turns out to be dark cyan. Since we already had regular cyan in the blue ramp, it means there are now two cyans in the palette, creating an extra ramp for us to use.
Assuming these bordering greens have more practical use, the palette looks like this:
Color | RGB | Color | Color | RGB | Color |
---|---|---|---|---|---|
0 | 000 | 8 | 300 | ||
1 | 000 | 9 | 520 | ||
2 | 000 | 10 | 741 | ||
3 | 000 | 11 | 773 | ||
4 | 000 | 12 | 777 | ||
5 | 034 | 13 | 467 | ||
6 | 050 | 14 | 237 | ||
7 | 470 | 15 | 005 |
Grey
Grey is also a color found in nature (rocks). The C64 actually has three shades of grey in its (fixed) palette, the MSX1 has only one grey. Greys aren't just used for rocks, stones and metals, grey is an excellent transition color between specific colors. The central color between pure yellow and pure blue is grey. Similar transitions can be made for purple-green and red-cyan. The practical aspect of this middle color is that it's always grey, meaning you can use one color to create multiple color ramps. Since we have only 16 colors at our disposal, any efficient use of colors is important.
Applications for grey:
- stones and rocks
- metal for swords, shields, booths, armoury
- dusty places, such as the moon
- caves
- as a transition between a color and its inverse.
Question is how many greys are required in a fixed all round palette. Assuming that black and white are part of the grey ramp, two middle greys should be sufficient enough. As such, the palette looks like this:
Color | RGB | Color | Color | RGB | Color |
---|---|---|---|---|---|
0 | 000 | 8 | 300 | ||
1 | 000 | 9 | 520 | ||
2 | 000 | 10 | 741 | ||
3 | 333 | 11 | 773 | ||
4 | 555 | 12 | 777 | ||
5 | 034 | 13 | 467 | ||
6 | 050 | 14 | 237 | ||
7 | 470 | 15 | 005 |
The rest
With this palette there is a good generic palette, which differs only a small bit compared to the MSX1 palette.
- two greys instead of one
- one yellow instead of two
- three red-orange shades instead of three reds
- two green'ish greens instead of three pure greens
- two cyans instead of one
Assuming we'll always be using black, there are two colors left to fill up. Perhaps it could be one skin tone, or perhaps you really need magenta. The two colors could also be left open to be changed according to the context of the game they're used for. Perhaps there is a pop-up over the game area with a portrait of the player or NPC, the extra colors could be used for that. Something to keep in mind is that a black sprite can only be black if there's black somewhere in the colors 1 to 15. Color 0 being black won't do for sprites.
Quantity versus quality
In the above generic palette most colors - at least the practical ones - are represented with some shades; the quantity option. This is a choice and heavily depends on the context in which they're being used. In a colorful RPG, full with NPCs, buildings, vegetation and objects, a range of diverse colors is practical. A setting which is less colorful (sci-fi, noir) needs less colors obviously. In such cases it can be a choice to have a few primary colors (such as the somewhat universal red-orange-yellow and blue-cyan-white) with the rest being a very smooth ramp of one color family. The Parallax game Magnar features the red-orange-yellow and blue-cyan-white ramps while the major part of the rest of the colors is dedicated to greys; the quality option. This is a creative and context sensitive choice.
Quantity
- + good for variety
- + allows portrait/item overlays easily
- + good for generic purposes
- - may miss shades for soft shadows
- - ramps can be too steppy for large areas
A solution for more shades is to use regular or noisy rasters, the graphics of Xak 1 make heavy use of rasters.
Quality
- + soft shadows are easier
- + a lot of details
- - not much color variety
- - may not allow portraits/items as overlay
A solution for more variety could be to place any image that requires more colors into another vertical part of the screen (such as a status bar) and adjust the palette using a color screen split. In this situation both these images and the level feature lots of color details. The only disadvantages are:
- this method only works well where a color screen split can be applied
- pure MSX-BASIC can't be used
The final palette
- the final palette
- all possible color ramps
- colors compared to MSX1
- colors ordered to somewhat mimic spectrum colors