Live data from Hacker News

Secret colours of the Commodore 64

aaronbell.com

61–70 of 100 posts

Re: Secret colours of the Commodore 64

#61
Reminds me of another piece of magic I used to use during my Amiga demo days. Infinite Bobs. A Bob was a BlitterObject, a graphic rendered by the hardware, not dissimilar to a sprites.

People would try many things to render as many Bobs as possible.

https://www.youtube.com/watch?v=eDQTxbudvDg

At some point the infinite bob demo appeared (I couldn't find a video for this). Seemingly endless sprites rendered on the screen - all moving, with no slowdown. As a 15 year old programmer learning to code demos in assembly I was very confused, how was it done?

I did eventually (after many hours spent in devpac disassembling code) work it out. They were not rendering infinite bobs, they were rendering one!

If you create three screen buffers. On the first screen buffer draw the bob at position (x,y), then switch to the second buffer draw at (x+delta,y+delta), then switch to the third buffer and draw at (x+delta,y+delta) and then repeat the cycle through the buffers as you move the bob.

If you switch between the buffers on the vsync (50/60hz) then the difference between where you drew the bobs appears like movement. You can draw out infinitely complex patterns and make it look like you're rendering millions of bobs!

Happy days.

Re: Secret colours of the Commodore 64

#62

> Sidebar: A note on frames per second. The European PAL C64 updated at 50fps, whereas the US NTSC systems updated at 60fps This is because alternating current is 50Hz in PAL countries (eg Europe), and 60Hz in NTSC countries (eg America). Analogue TVs vertical refresh rate was synced to the AC frequency for a bunch of practical reasons, which meant gaming consoles had to send signals to the television at either 50Hz…

I recently modded my Master System to have composite out and added a 50/60 switch at the same time. Flipping it in-game feels really strange, as I'm so familiar with the PAL speed, but the NTSC speed is obviously the correct one.

Re: Secret colours of the Commodore 64

#63

Reminds me of another piece of magic I used to use during my Amiga demo days. Infinite Bobs. A Bob was a BlitterObject, a graphic rendered by the hardware, not dissimilar to a sprites. People would try many things to render as many Bobs as possible. https://www.youtube.com/watch?v=eDQTxbudvDg At some point the infinite bob demo appeared (I couldn't find a video for this). Seemingly endless sprites rendered on the scr…

That Phenomena demo in the youtube video that you linked to is actually a very clever display of the infinite bob trick. It is just so convincing that it is, still, difficult to spot it.

Re: Secret colours of the Commodore 64

#64
post #33

Off topic-ish: There was a trick you could use on the Atari ST to display more than the allowed number of colours - you reloaded the palette data on each horizontal interrupt. Could this have been used on the C64 also?

Talking of the Atari ST, there was an excellent example of this colour-switching in an ST software utility called Photochrome, which could use overscan effects, multiple palette switches per line, plus the colour switching technique in this article to greatly increase the number of perceived colours. It's the best example of this colour switching technique I've seen with barely any noticeable flicker (on a CRT-TV anyway). Seeing what was effectively a 'true colour' image coming from a machine that's only supposed to be capable of 16 indexed colours was a very impressive feat.

Re: Secret colours of the Commodore 64

#65

> Sidebar: A note on frames per second. The European PAL C64 updated at 50fps, whereas the US NTSC systems updated at 60fps This is because alternating current is 50Hz in PAL countries (eg Europe), and 60Hz in NTSC countries (eg America). Analogue TVs vertical refresh rate was synced to the AC frequency for a bunch of practical reasons, which meant gaming consoles had to send signals to the television at either 50Hz…

In a similar fashion, some turntables have four rows of dots on their platter and a strobe light that will blink at a frequency determined by your mains AC frequency, and when the platter is moving at a perfect 33 RPM or 45 RPM, the respective row of dots for your AC frequency will appear to be standing still.

https://www.youtube.com/watch?v=LdyiFn_idpY

Re: Secret colours of the Commodore 64

#66

Earlier quoted context omitted.

That isn't quite correct. The C64 outputs a progressive-scan image, which is a hack on top of NTSC or PAL. In this configuration, there are only even or odd fields, which double-strike the same area. Thusly, it is 60 fields per second, and since only one field forms the full frame, it's 60 frames per second as well. There is no scanline striping; that is strictly an artifact of poor NTSC capture devices (like most HD…

A progressive-scan image emitted as an interlaced image results in, well, an interlaced image. That the scanline pairs are usually identical merely means that it's wasting vertical resolution. And nonetheless a CRT from the time would show these as different scanlines.

No, the signal indicates whether a given field is for even or odd scanlines. I used plenty of computers and CRTs around that time and not one incorrectly displayed progressive as interlaced.

Re: Secret colours of the Commodore 64

#67

Earlier quoted context omitted.

A progressive-scan image emitted as an interlaced image results in, well, an interlaced image. That the scanline pairs are usually identical merely means that it's wasting vertical resolution. And nonetheless a CRT from the time would show these as different scanlines.

No, the signal indicates whether a given field is for even or odd scanlines. I used plenty of computers and CRTs around that time and not one incorrectly displayed progressive as interlaced.

[deleted]

Re: Secret colours of the Commodore 64

#68

Earlier quoted context omitted.

A progressive-scan image emitted as an interlaced image results in, well, an interlaced image. That the scanline pairs are usually identical merely means that it's wasting vertical resolution. And nonetheless a CRT from the time would show these as different scanlines.

No, the signal indicates whether a given field is for even or odd scanlines. I used plenty of computers and CRTs around that time and not one incorrectly displayed progressive as interlaced.

To clarify, I'm talking about CRT TVs, not computer monitors. The latter aren't (usually†) interlaced.

†There's some interesting exceptions!

Re: Secret colours of the Commodore 64

#69
post #46
post #16

Cool article, but the Spectrum really only had 7 colours and black. And at the time I hated the Commodore 64's colour palate (and any non ZX Spectrum palate, until I saw the beautiful SAM Coupé's) so I guess it's a matter of preference.

Sinclair ZX Spectrum had a palette of 15 colors. 7 base colors, plus 7 "bright" versions, plus black (bright black was the same as normal black).

Ah yeah but they're essentially the same colours, whereas the C64 had 16 unique ones. If it had only used 4 bits for colour then I don't think it would've maintained its earthy palate because it wouldn't have been useful enough.

Re: Secret colours of the Commodore 64

#70
post #41
post #23

Earlier quoted context omitted.

That's very interesting. I'm always impressed at how dedicated some people are to old systems too. My Spectrums haven't been touched in 15 years and here's people making graphics cards for them still.

There's even a new speccy coming out. http://www.specnext.com/

Niceee. I wonder if it has a real Z80 or it's implemented on an FPGA as mentioned.
Post reply on HN