# pouët.net

category: general [glöplog]

A question regarding the CPC graphic mode layouts, I must say that I'm still not getting how the graphics mode works.
Is the 16-color mode a one-nibble per pixel mode?
That is, if the first byte of vidram is \$45, does that mean that the [0,0] pixel has color 4 and the [1,0] pixel has color 5?
And then, what about the next byte, is that the colors for [2,0] and [3,0] or [0,1] and [1,1] ?
added on the 2011-03-26 00:23:14 by Sdw
added on the 2011-03-26 00:53:59 by jhae
This is the mapping of the pixel bits on the CPC (Mode 0 - 160 * 200 * 16 colours)
(taken from here)

Unfortunatelly it's more complicated than it should be (I am not sure why, except from the fact that if you have the leftmost pixel in a byte, with a single shift to the right you move it's colour to the rightmost pixel and vice versa) but for pixel effects I just store 16 byte values of leftmost pixels and the same for rightmost and OR them together later to make the byte.

The next byte is [2,0] and [3,0]. As we increase to the next bytes, we move linearly in a line till we reache the right side of the displayed screen. Then instead of starting as expected from the left side on the 2nd line, we start on the left side of the 9th line. We have to walk linearly but do these x8 line jumps after each right end of the displayed screen till we reach the last char line (after 25 jumps) to go up and start again rolling through the 2nd, 10th, etc line. x8 times. This is in a very short what Pulkomandy explained. It's very similar to Speccy except that 1/3 of a screen is filled locally before going to the next 1/3 (I am not going to explain speccy now in more detail, duh :)
added on the 2011-03-26 01:08:40 by Optimus
yeah, that sounds like a bollocks way of doing things. c64 wins then. excellent.
added on the 2011-03-26 01:44:11 by 4mat

@Optimus, About zoomers, CPC is so powerful that it can do so in very different ways, for example, the little wobbling joker gfx may have unlimited lines really, in this case the limit was in the horizontal (please, also note that uses more than 16 colors in total). But the technic used for the zoomscroll is how you said, it have the limit in the number of lines and the total width of the effect.

But all we can say here is just theory, real capabilities must be showed in demos, and C64 had a great advantage with its huge scene... They made many demos for a long time and have already used their full potential, while CPC begins now.
added on the 2011-03-26 02:03:57 by Rhino/BG
it's like with the 8 bit atari, c64 HW is mostly better for games, cpc (and atari) for demos (minus sound). Seems like the VICII was the best gfx accelerator for games in its era and SID was best for sound. Then there is a very low clocked CPU, which is not as good when you want to make demos.
added on the 2011-03-26 05:58:53 by Oswald
Quote:
t's like with the 8 bit atari, c64 HW is mostly better for games, cpc (and atari) for demos

.. and since demos are more important in life than games, Atari wins ;-)
Now I have to go and do that cool bat sign and add some nice raster bars.
added on the 2011-03-26 07:39:19 by JAC!
make sure the music is in tune! oh wait, it's a pokey chip.
added on the 2011-03-26 08:02:39 by 4mat
You could easily overcome that obstacle by grouping 2 channels into one, to have 65536 notes. But only very few use it for Melodic improvements and go for 4 the standard REAL channels, unlike other 8bit sounchips(Except for the FM's and SAA's ofcourse :). This hardware setting is mostly used for drums, because the variety on lower octaves in reality is not very good. The Pokey is really only suited for higher tones.

But since you already made musics on the Vic20, you know even weirder sound constrains on COMMODORE machines, amirite, 4mat? ;-)
added on the 2011-03-26 08:55:15 by Exin
oops, text got mixed up here while touching the touchpad while tgyping again. It was meant to say "go for the standard 4 REAL channels".
added on the 2011-03-26 08:56:44 by Exin
I'm with 4Mat here (hands over the beer).
"personal opinion, but tbh the modern spectrum/amstrad AY musicians just don't write memorable tracks."

This is so true. You need something to remember the music, and almost nobody writes such AY tunes now? Take a note here :)
added on the 2011-03-26 09:09:00 by leGend
@Optimus, About zoomers, CPC is so powerful that it can do so in very different ways, for example, the little wobbling joker gfx may have unlimited lines really, in this case the limit was in the horizontal (please, also note that uses more than 16 colors in total). But the technic used for the zoomscroll is how you said, it have the limit in the number of lines and the total width of the effect.

@Rhino: Do you mean the wobbling part after the textured twister? I was originally meaning the elastic zooming part with the little joker symbol after the Vanity message. But I haven't notice the big wobbling part you might refer, I didn't notice the use of more than 16 colours, interesting. And that part scrolls it's lines while wobbling producing more lines for wobbling, that's cool! Reminds me of S&Koh with it's big bitmap in a way (even if it's not the same).

I am curious about your software X-stretcher routine. Mine was a series of LDIs and DEC L or INC/DEC H. Around 5-7 NOP cycles per byte. I see with the winape32 debugger that you might have a different code, maybe faster even, but I have to give more thought to it.

There is surely more stuff that can be do with the X-stretcher and Y-stretch with hardware. Everybody thinks and jokes that with your demo they have to scrap their old effects and make new ones. But there is more the CPC hasn't touched that the C64 and other 8bits have already showed well here (For example realtime vectors. Animations are cool but what about realtime? Face Hugger still holds the sceptre in this and it's laughable. I think the z80 is more powerfull than 6502 for vectors but one has to proove it).
added on the 2011-03-26 09:33:07 by Optimus
I forgot the quote :/
added on the 2011-03-26 09:33:31 by Optimus
@Optimus: Thanks for the gfx-mode explanation! Always fun to understand the different ways the different manufacturers came up with in the 80ies.

The CPC has been on my "machine-it-would-be-nice-to-have-someday"-list, but with Batman Forever released, it moved up the list quite a bit! :)
added on the 2011-03-26 10:36:20 by Sdw
The only reason I can think for having such a weird bits interlacing is some kind of hardware constraints in the video chip. At least you have two pixels on one single byte made of real 8 bits, not like the Spectrum bitmap+colormap, the Atari ST spreading over four bitplans, or the Oric 6 pixels per byte.

At least it explains why the CPC is a good machine for pixel/texture effects :)
added on the 2011-03-26 10:47:12 by Dbug
"I think the z80 is more powerfull than 6502 for vectors but one has to proove it)."

The speccy guys have proved that ages ago. Bad thing for the CPC that you have to fill twice as much memory for the same resolution. (4bit / pixel in 160x200 instead of 2 on c64 or atari) Also the char modes are missing badly, they can help in a lot of ways.
added on the 2011-03-26 11:44:52 by Oswald
@Optimus: you're on a fake way. Rhino zoom/deformation is just line spliting and... rasters :)
added on the 2011-03-26 12:56:58 by Hicks
One good demo won't save the cpc scene, it is too small unless ppl get interested. Imo the cpc palette is only good for cartoonish stuff otherwise it is too garish, not speaking of the dreadful AY, someone was saying that people complain about the music, it is easy to do that because the effects/gfx in this batman demo are very good and them the beeps sound more awful then they would otherwise.
added on the 2011-03-26 13:05:42 by Iapetus
@Hicks: Hmm,. strange. Does it mean that all versions of different scales of the same bitmap are stored and just selected to display with the CRTC? It could be a lot of memory but maybe it's possible with such small bitmaps? At least I guess the zooming scroller needs some software update at least on each right side if not whole.
added on the 2011-03-26 16:45:51 by Optimus
Rhino said:
Quote:
... (c64 democoders) have already used their full potential

Well, i will never dare say something like that. You proved wrong all the guys who thought CPC was not a decent demo platform, and i'm sure there still exist nifty routines to be found on c64 or whatever computer with fixed hardware.

wood said:
Quote:
One good demo won't save the cpc scene, it is too small unless ppl get interested.

ATM, 235 thumbs up, 2 piggies and no thumb down for batman demo, well it seems ppl are interested!
added on the 2011-03-26 18:11:01 by baah
Quote:
c64 democoders have already used their full potential

Yepp, we heard this so many times ;)
added on the 2011-03-26 18:33:36 by cryer
@Optimus: the X/Y deformation (after the raster-rubber) and the joker-zoom need just 1 (or 2, for technical reasons) line(s) updated in software, repeated on the whole screen, and rasters to build the bitmap (change every 4th lines on X/Y deformation, every 3 lines on the joker-zoom... and we can see it :). So very few software are involved, and a lot of rasters. Zoom-scroll is different because the bitmap is not the same at each frame. But I don't want to break the magic in explaining all the tricks ;)
added on the 2011-03-26 18:37:37 by Hicks
"One little extra difficulty with the hardware vide tricks is there are 5 different versions of te video chip (CRTC 0 1 2 3 4). CRTC2 is the original one and the less interesting, it can't do most of the effects. CRTC0 is the reference platform, and CRTC1 is slightly more powerful. CRTC3 is the one in the Plus machine, it works like a CRTC0 more or less but has some extra features. CRTC4 is the same as 3 but in late non-Plus machines. "

This is a real pain. Unless use emus(which for some is not acceptable)
added on the 2011-03-26 19:13:23 by Iapetus
Hmm, not liking AY sound? But this is 8-bit computer and it is not a C64, so what the fuck do you expect?

AY tunes not memorable? Eh? That must have written an idiot. Or - a C64 evangelist. So pray to your God, the God 64! Of course, it's a joke. But think.. are AY tunes really not memorable? No. Are SID tunes more memorable? Hmm, those classic 80's ones may be. But the new ones? I don't remember anything special now. And AY - yes. Many of them. So this is a personal view.

About C64 vs others palette - C64 sucks. No bright colors. No real green, no real red. Just brown, grey and stuff. It is not only my opinion, but many people I've talking with about this thing. Not from C64 scene, of course. They have the best palette. Of course - because they have C64. There is no another way. Palette of CPC is superb. A bit CGA-ish (as it uses the same video chip like on CGA graphics cards), but nice and bright colours. And more than 16 brown/pink ones :)

The sound again - why the other platform sceners don't (almost hate) sound of SID? "Because it sounds still the same", they say. "AY not?" "Yes, but AY has better melodies, SID tunes sound to me too 'same' with no invention, just 'do-better-sounds-and-the-other-doesn't-matter' ". On AY, there couldn't be better sounds. It sounds the same all the time. So composers must improve an idea, the melody and arrangement. So, make your own opinion.
added on the 2011-03-26 19:41:08 by Aki
Factor6, I can forgive you for being colour blind and tone deaf, but not for calling 4mat an idiot. Tsk, tsk.
added on the 2011-03-26 19:51:25 by mermaid