I was digging Amstrad CPC's hardware features lately and I'm confused with color palette information.
This link;
http://www.exotica.org.uk/mirrors/gfxzone/articles/cpc_graphics-article_01.html
says
Not all those 27 possible colors can be used on the same screen, at maximum 16 colors can be used simultaneously.
which makes sense to me since all 4 bits graphics modes are limited by 2^4=16 colors. But wikipedia link;
http://en.wikipedia.org/wiki/Amstrad_CPC
says
The redesigned video hardware allows for hardware sprites and soft scrolling, with a colour palette extended from 17 out of 27 to 32 out of 4096 colours
this information is at Plus section but while comparing the old hardwares with plus, it says "17 out of 27" not "16".
Another link;
http://cpcwiki.eu/index.php/Video_modes
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).
So 32-15=17 again.
I guess 17th color might be the background color but I'm not sure about this. Can anybody who has coded on Amstrad CPC platform confirm this?
Also the first link above says
only 16 out of those 4096 colours can be used at the same time
for Plus range but others say 32 instead of 16. Maybe that page didn't count sprite colors and background color. I just wanted to be sure.
I can only answer this one with fond memories rather than proper programming experience. It was the 464 that got me into programming but my programs were very,very simple!
I do remember that when programming in BASIC 16 colours was the maximum. I don't know if anything more hardcore managed to stretch out another one. Your third link mentions the border colour as the 17th, I think this is the most likely explanation for the apparent conflict in specs.
Now you've got me feeling old.
FWIW, I just ran across that article and sentence today and felt the need to amend it to clarify its meaning, which is the same as everyone else's answers here.
Some more info: As hinted at by Matthew, the CPC's CRTC has a bit that determines whether or not it should write the dedicated border colour. It's set when the beam is outwith the actual graphics area. Said are is limited in size by the amount of RAM available to the CPC for the display. This itself defaults to 16 kB but can be altered through various forms of trickery, as seen in some games - and especially many releases by the demoscene.
As an aside, something that I'm revisiting at the moment is how to implement the Spectrum-style scrolling border while tapes are being loaded. This is done by changing the colour of the border whenever the polarity of the bit being input changes, and this is accomplished via the Gate Array rather than the CRTC. Fast changes of the border in that way are, again, often used in demos to accomplish previously 'impossible' things, most often rasterised lines and suchlike.
What everyone said actually, 16 main colors (try INK x,y in Basic where x=0 to 15 and y=0 to 26) plus one border color(type BORDER z in Basic where z=0 to 26 for border color (big area outside main videoram, used for flashes in games)).
In CPC+ hardware sprites, the available colors are 15 because 1 color is reserved for transparent between the sprite and background gfx. This makes 32, 16 background colors + 1 border color + 15 sprite colors.
However, since you can change the palette of any of these any time during the retrace of the screen, typical effect in most oldschool computers, you could have differently colors sprites and background where each line or part of line changes palette (you need a lot of synchronization with the retrace beam to do that, a bit easier to do per line on CPC+ with line IRQ interrupts). So technically the CPC can show off all 27 colors and the plus all 4096 colors at the same time (check the screenshot here, http://www.cpc-power.com/index.php?page=detail&num=8308 , it's just a preview and it looks ugly but shows what's possible with the CPC plus)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With