Changes

Jump to: navigation, search

Video modes

5,280 bytes added, 13:46, 20 September 2023
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 (cartridge)|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.
*'''Mode 1''': '''320×200''' pixels with 4 colors (2 bpp)
*'''Mode 2''': '''640×200''' pixels with 2 colors (1 bpp)
*'''Mode 3''': '''160x200160×200''' 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 "[[Programming:Overscan|overscan mode]]".)
This then allows with a video memory of 24Ko 24 KB (approximately) to displays on the standard screen up to :* Full screen '''Mode 0''': '''192x272192×272''' pixels with 16 colors (4 bpp)* Full screen'''Mode 1''': '''384x272384×272''' pixels with 4 colors (2 bpp)* Full screen'''Mode 2''': '''768x272768×272''' pixels with 2 colors (1 bpp)
Also the use of scanlines to increase vertical resolution is not "easly" possible on Amstrad CPC. When dealing with Full screen on real Hardware, the vertical limit of 256 pixels is the "safely displayed zone". As the actually displayed zone may vary depending the time your monitor ran (warmed ?) or from individual hardware to another. The same goes for horizontal diplay as we deal with old electronic.
==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.
Yet fine graphics with a really colourful feeling become harder to get, so are nice metallic or graphical effect letter fonts with 4 colors...
==Coloursand Palettes==
It is Cubic, generated by "Trigits" (ternary digits)
* This palette is used by the [[CPC|Amstrad CPC]] old series only and is almost not found in any other computers (but clones of course). * The Toshiba [[PASOPIA 7]] is known to feature the same 3-level RGB palette as the Amstrad CPC, its video modes are different than Amstrad CPC's ones though.
:{| style="border-style: none" border="0" cellpadding="0"
This is a palette that was often badly used because of the crossdevelopment in games industry.
Many A lot of 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.  *To set a CPC palette on modern Graphic software. 
{| class="FCK__ShowTableBorders"
| ''R %'' || ''G %'' || ''B %''||Hexadecimal || RGB values || ''Colour''
|-
| 0|| 54h ||Black || 0|| 0|| 0|| #000000||0/0/0||bgcolor="#000000"|
|-
| 1|| 44h (or 50h) ||Blue || 0|| 0|| 50|| 00007F #000080||0/0/127128||bgcolor="#000080"|
|-
| 2|| 55h ||Bright Blue || 0|| 0||100|| #0000FF ||0/0/255||bgcolor="#0000ff"|
|-
| 3|| 5Ch ||Red || 50|| 0|| 0|| 7F0000 #800000||127128/0/0||bgcolor="#800000"|
|-
| 4|| 58h ||Magenta || 50|| 0|| 50|| 7F007F #800080||127128/0/127128||bgcolor="#800080"|
|-
| 5|| 5Dh ||Mauve || 50|| 0||100|| 7F00FF #8000FF ||127128/0/255||bgcolor="#8000ff"|
|-
| 6|| 4Ch ||Bright Red ||100|| 0|| 0|| #FF0000||255/0/0||bgcolor="#ff0000"|
|-
| 7|| 45h (or 48h) ||Purple ||100|| 0|| 50|| FF007F#ff0080||255/0/127128||bgcolor="#ff0080"|
|-
| 8|| 4Dh ||Bright Magenta ||100|| 0||100|| #FF00FF||255/0/255||bgcolor="#ff00ff"|
|-
| 9|| 56h ||Green || 0|| 50|| 0|| 007F00 #008000||0/127128/0||bgcolor="#008000"|
|-
|10|| 46h ||Cyan || 0|| 50|| 50|| 007F7F #008080||0/127128/127128||bgcolor="#008080"|
|-
|11|| 57h ||Sky Blue || 0|| 50||100|| 007FFF #0080FF||0/127128/255||bgcolor="#0080ff"|
|-
|12|| 5Eh ||Yellow || 50|| 50|| 0|| 7F7F00 #808000||127128/127128/0||bgcolor="#808000"|
|-
|13|| 40h (or 41h) ||White || 50|| 50|| 50|| 7F7F7F #808080||127128/127128/127128||bgcolor="#808080"|
|-
|14|| 5Fh ||Pastel Blue || 50|| 50||100|| 7F7FFF #8080FF||127128/127128/255||bgcolor="#8080ff"|
|-
|15|| 4Eh ||Orange ||100|| 50|| 0|| FF7F00#FF8000||255/127128/0||bgcolor="#ff8000"|
|-
|16|| 47h ||Pink ||100|| 50|| 50|| FF7F7F#FF8080||255/127128/127128||bgcolor="#ff8080"|
|-
|17|| 4Fh ||Pastel Magenta ||100|| 50||100|| FF7FFF#FF80FF||255/127128/255||bgcolor="#ff80ff"|
|-
|18|| 52h ||Bright Green || 0||100|| 0|| #00FF00 ||0/255/0||bgcolor="#00ff00"|
|-
|19|| 42h (or 51h) ||Sea Green || 0||100|| 50|| 00FF7F #00FF80||0/255/127128||bgcolor="#00ff80"|
|-
|20|| 53h ||Bright Cyan || 0||100||100|| #00FFFF ||0/255/255||bgcolor="#00ffff"|
|-
|21|| 5Ah ||Lime || 50||100|| 0|| 7FFF00 #80FF00||127128/255/0||bgcolor="#80ff00"|
|-
|22|| 59h ||Pastel Green || 50||100|| 50|| 7FFF7F #80FF80||127128/255/127128||bgcolor="#80ff80"|
|-
|23|| 5Bh ||Pastel Cyan || 50||100||100|| 7FFFFF #80FFFF||127128/255/255||bgcolor="#80ffff"|
|-
|24|| 4Ah ||Bright Yellow ||100||100|| 0|| #FFFF00||255/255/0||bgcolor="#ffff00"|
|-
|25|| 43h (or 49h) ||Pastel Yellow ||100||100|| 50|| FFFF7F#FFFF80||255/255/127128||bgcolor="#ffff80"|
|-
|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 *'''Note :''' Actually both RGB's 127 (#7F) or 128 (#80) values can be used to see generate the CPC palette's half tones on a true colour modern Plasma screen depending the angle of your lookcomputer.
The colours displayed in this chart actually use the 80h=128 medium value...Why ?
Because you simply can't divide 255 by two (But MacDeath uses the 7Fh=50%) to get 127 one for his graphics with cubes,5... ;-)the theoric CPC's half tone. So you have to round it, wether be it superior or inferior value.
By the Way good old 80's electronic device such as Amstrad CPC wasn't that precisely set... if you measure the actual value, you may get far different result from individual machine to other.
 
The Amstrad PLUS range is also unable to accurately emulate the half value...
 
Being 12bit palette with 4 bits per R/G/B... this give you a scale from 0 to 15.
 
And 15 cannot also be divided by 2 unless rounded.
 
That's the Specificity of Amstrad CPC's Ternary digital system... Binary digit cannot produce this... but 1/255th is certainly close enough to get the eye to not notice.
 
As a result, an EGA Card (64 colour palette) cannot emulate the CPC palette because it clearly lack decent Half values... it is more like 0, 1/3, 2/3 and 3/3 (0%, 33%, 66% and 100%...)
 
 
 
*Also the official names of the colours may not be that accurate...
 
"Purple" is more like some kind of Magenta while "Magenta" is more like some sort of Mauve and Mauve a Purple... and so on.
 
"White" is actually grey while "bright white" is white...
 
Cyan is quite mixable with blues, and lighter Cyan are also lighter blues.
 
Anyway, the CPC palette actually covers a complete RGB cube... Yet in a simplified way. Per exemple an unsatured "Brown" would be a cross between Orange and Black/grey/white... Yet the CPC has only one flashy medium Orange.
 
 
*while the CPC palette actually have perhaps 5 shades of green, a "good" Green gradiant from black to white can't use that many colours... Because 4 "green" shades are too close.
Yet this can be used for a more subtle approach, and yellows actually mix well with some "Greens"
*CPC palette and ditherings
Courtesy of MacDeath.
 
 
It is to notice that if the Amstrad CPC could have a 320x200x16 mode... the dithering possibilities would have been quite awesome, and the palette would be more than well exploitable on the best 8bit Graphic machine...
 
As shown... the CPC original palette is good as it enable gradiants in Black and White + 3 shades for the 6 basic colours...
 
Red, Green, Blue... and Yellow, Cyan and Magenta (purple).
 
Added to those, there are a few special crossbreed colours such as "Mauve" (2 shades : Mauve and Pastel blue), orange (can mix with red and yellows), "Purple" (a bluer Red) and a lot of "light greeens" (turning into Cyan or yellow).
 
Yet those are saturated colours, not fit for Greys or Brown spectrums as the C64 palette was. still great for comics styled graphics.
*the cubic nature of the CPC palette
Courtesy of MacDeath.
 
The Amstrad's "grey" (Real name = "White"... or dark white in opposition to bright white) is used as background. It is not shown on the cubes because it is supposed to be "inside" the cubes.
 
*How to extend the cube
 
With a certain limit and providing the use of fine regular dithering, the RGB cube of the Amstrad CPC can be stretched into bigger RGB cubes.
 
Such cubes are also a guide to get the smooth gradiants from one CPC colours into another.
 
[[File:R2G2B2 EGA palette on CPC.png]]
 
This is the CPC palette stretched into a R2G2B2 cube (bits, not values) with help from dithering, hence giving 4x4x4= 64 colours. Basically the MS-DOS era IBM PC EGA as availlable on Amstrad PC1640
 
 
[[File:R5G5B5 CPC complete ditherings.png]]
 
This is the CPC palette stretched into a R5G5B5 cube (values, not bits) with help from dithering, hence giving 5x5x5 = 125 colours.
 
Notice how some colours can be obtained with up to 4 different combinaisons, yet with the same result. But when considering on screen pixels reactions, notably during flickering technics, some combinaison may be better than others in order to reduce the flash effect of the flickerings.
 
Bigger RGB cubes would need the use of unpractical ditherings (other than 50%) and perhaps mix of more than 2 colours. This would simply not work properly.
 
[[File:Mire CPC.png]]
 
This kind of picture can be obtained on a real CPC (through mode0 and Rasters) in order to test the monitors, and also to understand at first sight how the Colours logic works.
 
[[File:Stretched CPC palette macdeath.png]]
==='''12-bit RGB of the PLUS'''===
*More infos here : [[Programming:Amstrad CPC plus sprite format]]
==Related pagesSoftware Video modes== Some odd and obscure "software video modes" can be achieved through the use of various tricks. such modes are : *[[Mode 5]] which makes heavy use of Rasters and Split Rasters in order to enable far more colours in the normal Mode1. *[[Mode R]] which make use of the the interlace effect in order to gain. It was used in the [[Batman Forever]] demo  *[[Flickering Screens Mode]] : which alternates 2 screen at 25hz each so they seem to blend together on the CRTC, this can mix different palettes (and colour swaps) or different modes to achieve colours unavailable on the normal Palette or some higher actual resolution by mixing Mode0 with Mode1 or Mode2. (also known in French as Flashouilles, or Epyleptic mode) ==See also==
*[[CRTC]]
*[[Gate Array]]
*[[ASIC]]
*[[Creating images for the Amstrad]]
 
*[[Mode R]]
==External Links==
896
edits