Difference between revisions of "Video modes"
(→3-level RGB of the CPC) |
|||
Line 104: | Line 104: | ||
|- | |- | ||
| ''Firmware Number'' || ''Hardware Number'' || ''Colour Name'' | | ''Firmware Number'' || ''Hardware Number'' || ''Colour Name'' | ||
− | | ''R %'' || ''G %'' || ''B %'' || ''Colour'' | + | | ''R %'' || ''G %'' || ''B %''||Hexadecimal || RGB values || ''Colour'' |
|- | |- | ||
− | | 0|| 54h ||Black || 0|| 0|| 0||bgcolor="#000000"| | + | | 0|| 54h ||Black || 0|| 0|| 0|| 000000||0/0/0||bgcolor="#000000"| |
|- | |- | ||
− | | 1|| 44h (or 50h) ||Blue || 0|| 0|| 50||bgcolor="#000080"| | + | | 1|| 44h (or 50h) ||Blue || 0|| 0|| 50|| 00007F ||0/0/127||bgcolor="#000080"| |
|- | |- | ||
− | | 2|| 55h ||Bright Blue || 0|| 0||100||bgcolor="#0000ff"| | + | | 2|| 55h ||Bright Blue || 0|| 0||100|| 0000FF ||0/0/255||bgcolor="#0000ff"| |
|- | |- | ||
− | | 3|| 5Ch ||Red || 50|| 0|| 0||bgcolor="#800000"| | + | | 3|| 5Ch ||Red || 50|| 0|| 0|| 7F0000 ||127/0/0||bgcolor="#800000"| |
|- | |- | ||
− | | 4|| 58h ||Magenta || 50|| 0|| 50||bgcolor="#800080"| | + | | 4|| 58h ||Magenta || 50|| 0|| 50|| 7F007F ||127/0/127||bgcolor="#800080"| |
|- | |- | ||
− | | 5|| 5Dh ||Mauve || 50|| 0||100||bgcolor="#8000ff"| | + | | 5|| 5Dh ||Mauve || 50|| 0||100|| 7F00FF ||127/0/255||bgcolor="#8000ff"| |
|- | |- | ||
− | | 6|| 4Ch ||Bright Red ||100|| 0|| 0||bgcolor="#ff0000"| | + | | 6|| 4Ch ||Bright Red ||100|| 0|| 0|| FF0000||255/0/0||bgcolor="#ff0000"| |
|- | |- | ||
− | | 7|| 45h (or 48h) ||Purple ||100|| 0|| 50||bgcolor="#ff0080"| | + | | 7|| 45h (or 48h) ||Purple ||100|| 0|| 50|| FF007F||255/0/127||bgcolor="#ff0080"| |
|- | |- | ||
− | | 8|| 4Dh ||Bright Magenta ||100|| 0||100||bgcolor="#ff00ff"| | + | | 8|| 4Dh ||Bright Magenta ||100|| 0||100|| FF00FF||255/0/255||bgcolor="#ff00ff"| |
|- | |- | ||
− | | 9|| 56h ||Green || 0|| 50|| 0||bgcolor="#008000"| | + | | 9|| 56h ||Green || 0|| 50|| 0|| 007F00 ||0/127/0||bgcolor="#008000"| |
|- | |- | ||
− | |10|| 46h ||Cyan || 0|| 50|| 50||bgcolor="#008080"| | + | |10|| 46h ||Cyan || 0|| 50|| 50|| 007F7F ||0/127/127||bgcolor="#008080"| |
|- | |- | ||
− | |11|| 57h ||Sky Blue || 0|| 50||100||bgcolor="#0080ff"| | + | |11|| 57h ||Sky Blue || 0|| 50||100|| 007FFF ||0/127/255||bgcolor="#0080ff"| |
|- | |- | ||
− | |12|| 5Eh ||Yellow || 50|| 50|| 0||bgcolor="#808000"| | + | |12|| 5Eh ||Yellow || 50|| 50|| 0|| 7F7F00 ||127/127/0||bgcolor="#808000"| |
|- | |- | ||
− | |13|| 40h (or 41h) ||White || 50|| 50|| 50||bgcolor="#808080"| | + | |13|| 40h (or 41h) ||White || 50|| 50|| 50|| 7F7F7F ||127/127/127||bgcolor="#808080"| |
|- | |- | ||
− | |14|| 5Fh ||Pastel Blue || 50|| 50||100||bgcolor="#8080ff"| | + | |14|| 5Fh ||Pastel Blue || 50|| 50||100|| 7F7FFF ||127/127/255||bgcolor="#8080ff"| |
|- | |- | ||
− | |15|| 4Eh ||Orange ||100|| 50|| 0||bgcolor="#ff8000"| | + | |15|| 4Eh ||Orange ||100|| 50|| 0|| FF7F00||255/127/0||bgcolor="#ff8000"| |
|- | |- | ||
− | |16|| 47h ||Pink ||100|| 50|| 50||bgcolor="#ff8080"| | + | |16|| 47h ||Pink ||100|| 50|| 50|| FF7F7F||255/127/127||bgcolor="#ff8080"| |
|- | |- | ||
− | |17|| 4Fh ||Pastel Magenta ||100|| 50||100||bgcolor="#ff80ff"| | + | |17|| 4Fh ||Pastel Magenta ||100|| 50||100|| FF7FFF||255/127/255||bgcolor="#ff80ff"| |
|- | |- | ||
− | |18|| 52h ||Bright Green || 0||100|| 0||bgcolor="#00ff00"| | + | |18|| 52h ||Bright Green || 0||100|| 0|| 00FF00 ||0/255/0||bgcolor="#00ff00"| |
|- | |- | ||
− | |19|| 42h (or 51h) ||Sea Green || 0||100|| 50||bgcolor="#00ff80"| | + | |19|| 42h (or 51h) ||Sea Green || 0||100|| 50|| 00FF7F ||0/255/127||bgcolor="#00ff80"| |
|- | |- | ||
− | |20|| 53h ||Bright Cyan || 0||100||100||bgcolor="#00ffff"| | + | |20|| 53h ||Bright Cyan || 0||100||100|| 00FFFF ||0/255/255||bgcolor="#00ffff"| |
|- | |- | ||
− | |21|| 5Ah ||Lime || 50||100|| 0||bgcolor="#80ff00"| | + | |21|| 5Ah ||Lime || 50||100|| 0|| 7FFF00 ||127/255/0||bgcolor="#80ff00"| |
|- | |- | ||
− | |22|| 59h ||Pastel Green || 50||100|| 50||bgcolor="#80ff80"| | + | |22|| 59h ||Pastel Green || 50||100|| 50|| 7FFF7F ||127/255/127||bgcolor="#80ff80"| |
|- | |- | ||
− | |23|| 5Bh ||Pastel Cyan || 50||100||100||bgcolor="#80ffff"| | + | |23|| 5Bh ||Pastel Cyan || 50||100||100|| 7FFFFF ||127/255/255||bgcolor="#80ffff"| |
|- | |- | ||
− | |24|| 4Ah ||Bright Yellow ||100||100|| 0||bgcolor="#ffff00"| | + | |24|| 4Ah ||Bright Yellow ||100||100|| 0|| FFFF00||255/255/0||bgcolor="#ffff00"| |
|- | |- | ||
− | |25|| 43h (or 49h) ||Pastel Yellow ||100||100|| 50||bgcolor="#ffff80"| | + | |25|| 43h (or 49h) ||Pastel Yellow ||100||100|| 50|| FFFF7F||255/255/127||bgcolor="#ffff80"| |
|- | |- | ||
− | |26|| 4Bh ||Bright White ||100||100||100||bgcolor="#ffffff"| | + | |26|| 4Bh ||Bright White ||100||100||100|| FFFFFF||255/255/255||bgcolor="#ffffff"| |
|} | |} | ||
+ | |||
+ | |||
+ | Note : it is possible to use the value 80h=128 instead of 7Hh=127 for the medium R/G/B... | ||
+ | |||
+ | The difference is actually quite difficult to see on a modern Plasma screen depending the angle of your look. | ||
+ | |||
+ | The colours displayed in this chart actually use the 80h=128 medium value... | ||
+ | |||
+ | (But MacDeath uses the 7Fh=127 one for his graphics with cubes... ;-) | ||
+ | |||
*CPC palette and ditherings | *CPC palette and ditherings | ||
[[File:Palette CPC gradiants.png]] | [[File:Palette CPC gradiants.png]] | ||
+ | |||
+ | Courtesy of MacDeath. | ||
*the cubic nature of the CPC palette | *the cubic nature of the CPC palette | ||
Line 169: | Line 181: | ||
[[File:Cubic palette1.png]] | [[File:Cubic palette1.png]] | ||
− | + | Courtesy of MacDeath. | |
==='''12-bit RGB of the PLUS'''=== | ==='''12-bit RGB of the PLUS'''=== |
Revision as of 01:02, 2 April 2011
Contains stuff from Wikipedia.
The standard video modes or Screen Modes.
As a Colour Personal Computer, perhaps the Amstrad CPC best argument (beside being cheap, fully equipped and well rounded) was it's video capability. Yet this was also more demanding for the Z80 to handle compared to other lighter players such as ZX Spectrum.
Also Amstrad's Video RAM was shared with the Z80 RAM. This and a cheap concept with fewer custom chips to ease the CPU could turn it into a sluggish snail if badly programmed.
Yet colourful games with few scrolling requirements, reflection games such as KLAX... were perhaps the easiest medium for a CPC to shine above other 8 bit computers.
Too bad too few graphically-heavy Role-Playing Games were produced.
Contents
Specifications
These are :
- Mode 0: 160×200 pixels with 16 colors (4 bpp)
- Mode 1: 320×200 pixels with 4 colors (2 bpp)
- Mode 2: 640×200 pixels with 2 colors (1 bpp)
- Mode 3: 160x200 pixels with 4 colors (2bpp) (this is not an official mode, but rather a side-effect of the hardware)
The Video modes are known to display pixels with different sizes.
Basically, the Amstrad CPC Video works like a CGA video card from a PC. But extra features like a 16 colours mode exist.
The dimensions in pixels given could be raised with clever use of FullScreen Trick (often dubbed erronuously as "overscan mode".)
This then allows with a video memory of 24Ko (approximately) to displays on the standard screen up to :
- Full screen Mode 0: 192x272 pixels with 16 colors (4 bpp)
- Full screenMode 1: 384x272 pixels with 4 colors (2 bpp)
- Full screenMode 2: 768x272 pixels with 2 colors (1 bpp)
Also the use of scanlines to increase vertical resolution is not possible on Amstrad CPC.
Colour attributes
The Amstrad CPC is perhaps the only cheap personal computer of this generation with absolutely no such thing as character colour attributes.
Speccy was awful for this, and even better computers had modes with it.
Yet the use of "Raster colour changes" can actually produce horizontal colour clashes if an animated object is to cross the 2 zones and the colours choosen badly/on purpose (or in 2 coloured mode2).
Such effect can almost be seen in the game Striker in the Crypts of Trogan/Stryker and the Crypts of Trogan when monsters cross the "rasterzones"...
Later Thomson 8 bit computers (MO6 and TO8) used to have the same Video Modes and Palette as the Amstrad Plus and an additional Mode (320x200 and 16 colors with attribute limitation of 4096 colours palette)
C64 and MSX also had Colour attributes, yet also some modes without or with less limitations than Speccy, and later models (C128, MSX2+ and 3) were also designed with even better extra non-attributed modes.
As a result, an Amstrad never sees any faulty colour clashes... despite the numerous speccy ports, because it cannot unless voluntarily programmed.... This saved many speccy ports indeed.
Is this better ? Well colours attribute system allow a good resolution with more than 4 colours displayed on screen with little effort.
So this would be interesting to display...colourful texts.
Yet fine graphics with a really colourful feeling become harder to get, so are nice metallic or graphical effect letter fonts with 4 colors...
Colours
3-level RGB of the CPC
The Amstrad CPC (old) palette features 27 colours, despite the fact that the Video system (Gate Array and CRTC) could actually handle 32 colours.
This is a 3-level RGB custom palette.
It is Cubic, generated by "Trigits" (ternary digits)
This palette is used by the Amstrad CPC old series only and is not found in any other computers (but clones of course).
The 3-level (not bits) RGB uses three level for every red, green and blue color components, resulting in a 33 = 27 colours palette.
A notable specification of the Amstrad CPC palette is that it offers only one "Grey".
Compared to the C64 with...er...only greys..? well, almost 4 greys... (Humor inside)
This explains why in some games rocks and stone are coloured in other shades to get a good colour layer with more than 3 shades (black, grey and white).
- Examples : Defender of the Crown with Purple rocks and stone walls... Also Barbarian.
It is also notable that this palette has a "lot" of Blue and Green variations... It is possible to use a mode 0 screen with almost only 16 pseudo Green and Blue colours (yet a bit purple for some of them).
Many graphic programmers used mostly coloured flashy bold colours as it was often reproached by other 8bit fans (C64...).
But a clever choice in said colours could also give good results too in Pastel shades.
Yet Amstrad CPC had clearly a better palette (in number) than Speccy, C64, or almost all post-1985 8 bit computers.
It is somewhat a bit of a shame that some of its colours are quasi-identical...
This is a palette that was often badly used because of the crossdevelopment in games industry.
Many Graphics ported from C64 or Atari ST can't be ported without a heavy job on the ink-colours selection or even a complete re-work of the pixelisation or composition.
Firmware Number | Hardware Number | Colour Name | R % | G % | B % | Hexadecimal | RGB values | Colour |
0 | 54h | Black | 0 | 0 | 0 | 000000 | 0/0/0 | |
1 | 44h (or 50h) | Blue | 0 | 0 | 50 | 00007F | 0/0/127 | |
2 | 55h | Bright Blue | 0 | 0 | 100 | 0000FF | 0/0/255 | |
3 | 5Ch | Red | 50 | 0 | 0 | 7F0000 | 127/0/0 | |
4 | 58h | Magenta | 50 | 0 | 50 | 7F007F | 127/0/127 | |
5 | 5Dh | Mauve | 50 | 0 | 100 | 7F00FF | 127/0/255 | |
6 | 4Ch | Bright Red | 100 | 0 | 0 | FF0000 | 255/0/0 | |
7 | 45h (or 48h) | Purple | 100 | 0 | 50 | FF007F | 255/0/127 | |
8 | 4Dh | Bright Magenta | 100 | 0 | 100 | FF00FF | 255/0/255 | |
9 | 56h | Green | 0 | 50 | 0 | 007F00 | 0/127/0 | |
10 | 46h | Cyan | 0 | 50 | 50 | 007F7F | 0/127/127 | |
11 | 57h | Sky Blue | 0 | 50 | 100 | 007FFF | 0/127/255 | |
12 | 5Eh | Yellow | 50 | 50 | 0 | 7F7F00 | 127/127/0 | |
13 | 40h (or 41h) | White | 50 | 50 | 50 | 7F7F7F | 127/127/127 | |
14 | 5Fh | Pastel Blue | 50 | 50 | 100 | 7F7FFF | 127/127/255 | |
15 | 4Eh | Orange | 100 | 50 | 0 | FF7F00 | 255/127/0 | |
16 | 47h | Pink | 100 | 50 | 50 | FF7F7F | 255/127/127 | |
17 | 4Fh | Pastel Magenta | 100 | 50 | 100 | FF7FFF | 255/127/255 | |
18 | 52h | Bright Green | 0 | 100 | 0 | 00FF00 | 0/255/0 | |
19 | 42h (or 51h) | Sea Green | 0 | 100 | 50 | 00FF7F | 0/255/127 | |
20 | 53h | Bright Cyan | 0 | 100 | 100 | 00FFFF | 0/255/255 | |
21 | 5Ah | Lime | 50 | 100 | 0 | 7FFF00 | 127/255/0 | |
22 | 59h | Pastel Green | 50 | 100 | 50 | 7FFF7F | 127/255/127 | |
23 | 5Bh | Pastel Cyan | 50 | 100 | 100 | 7FFFFF | 127/255/255 | |
24 | 4Ah | Bright Yellow | 100 | 100 | 0 | FFFF00 | 255/255/0 | |
25 | 43h (or 49h) | Pastel Yellow | 100 | 100 | 50 | FFFF7F | 255/255/127 | |
26 | 4Bh | Bright White | 100 | 100 | 100 | FFFFFF | 255/255/255 |
Note : it is possible to use the value 80h=128 instead of 7Hh=127 for the medium R/G/B...
The difference is actually quite difficult to see on a modern Plasma screen depending the angle of your look.
The colours displayed in this chart actually use the 80h=128 medium value...
(But MacDeath uses the 7Fh=127 one for his graphics with cubes... ;-)
- CPC palette and ditherings
Courtesy of MacDeath.
- the cubic nature of the CPC palette
Courtesy of MacDeath.
12-bit RGB of the PLUS
Used by the Amstrad Plus series.
It's like the good old Amiga 500 palette.
Systems with a 12-bit RGB palette use 4 bits (16 values) for each of the red, green, and blue color components. This results in a 163 = 4096 colours palette. From the 8 bit era, only the latter MSX specs had a greater palette (in number).
Only the later MSX specs series (2+ and 3...) did had more coloured palette... Yet at the time, the 4096 colours palette was even 16 bits standard, as good old Amiga and Atari STE (improoved version of Atari ST/STF...) did had 4096 colours palettes "only"...
This places the Amstrad plus range at second place in palette capability in 8 bit computers area... Bested only by MSX 2+ and 3 series, and alongside TO8 thomson's computers...
Maybe the NEC PC Engine console was also better...as it had a 16 bit video co-processor...
Needless to Say, the Amstrad PLUS has no problem to display proper colours when dealing with adaptations-ports from C64 or Atari ST but the resolution need some work (mode0 means wide pixels).
Mode 0 graphics
Mode 0 graphics are blockier thanks to the "2x1" ratio.
Courtesy of Wikipedia.
Yet the high amount of colours allows the use of Anti-Aliasing technics to soften the shapes.
It is the mode that made CPC a Colour Personal computer.
Dithering is sometimes used in this mode, yet the high number of colours allows better colour layers.
Dithering more offers a good "texture" or feel effect than real "new colours".
Few games on CPC werein fact C64 ports (graphically, indeed) as the C64 did had such video mode as the Amstrad's Mode 0... But Hardware Sprites capabalities were even more used... Also because the C64 did had less coloured palette,n and a lot of grey... the graphical results were quite different.
Notable games editor who used well the Mode 0 capabilities was the Spanish Dinamic corporation... They often used latinos Comics stars illustrations as intro pictures.
Yet the games area was often smaller than average...
Mode 1 graphics
The pixels are square, but the only 4 colours are a bit... few.
Courtesy of Wikipedia.
Yet a massive amount of horizontal "split rasters" allows you to multiply the number of colours displayed on the screen.
It's like using the colour attribute specification (as on ZX Spectrum) but with horizontal limitations.
Basically a CGA standard PC video display.
Pictures and graphical materials have to make good use of dithering in order to get a realistic look, yet the square pixels allow smooth dithering, and the absence of colour attribute system permit really interesting stuff compared to the humble speccy.
Mode 2 graphics
The pixels are 1x2, extremely slim.
Yet it's almost like an Hercule PC display.
Courtesy of Wikipedia.
This mode is difficult to use in a coloured way.
Better used as a Text Mode, yet it can be included in a split screen (games).
You have to dither a lot to get a good picture as there are no real colours shades.
Thanks to Mode 2 full screen capability (the so called "overscan")..., the Amstrad 8 bit computer was perhaps the one able to display the higher resolution in the 8 bit range...
(just have to see what Thomson's computer could do in full screen...and scanlines modes too on other systems...)
Border
The border allows 1 additional colour to be displayed on the screen with no tricks.
Amstrad Plus
The Amstrad Plus display the same modes, but 15 more colours can naturally be displayed thanks to the Hardwired Sprites.
This means 32 colours per screen with no tricks (including Border).
Also it is worth noting that the resolution of these Sprites (16x16 pixels) can be displayed through "magnification".
The basic x1/x1 pixel is like a Mode2 Pixel (a x=1 and y=2 ratio...or X= 0.5 and Y=1).
This can be multiplied by x2 or x4 in both dimensions (X and Y).
A mode 1 like pixel must then be a x2/x1 pixel. A mode 0 like pixel x4/x1.
Related pages
External Links
Wikipedia's page on the different 8 Bit systems Hardware Palettes and Modes including amstrad CPC of course...
Wikipedia's page on RGB palette including Amstrad CPC specific one
Les Sucres en Morceaux the French site from supersly, shows many examples and techniques to use the different Video mode of the amstrad CPC.