I thought this was about the interesting PAL encoding trick where you can generate colors outside the normal palette by putting two colors of the same luminosity on top of each other, with first color on odd raster lines and the second on the even raster lines. Commodore 64's PAL encoder did not correctly encode the phase difference between subsequent lines of the output, but rather simply inverted the phase of the generated color signal every line. This works fine if every line is meant to represent the same color, but if you change the color while the VIC also flips the phase angle, then the phase difference between successive lines creates some new color outside the regular C64 color palette.
Also, because the phase angle was generated by couple of really simple integrators inside the VIC chip from clock pulse wave, the phase between alternate lines was not exactly 180 degrees but more like 170 degrees. Gotta love analog technology. So it matters which of the two colors you put first, though it was somewhat machine dependent.
There was also a CGA trick involving horizontal smearing of pixels, due to incomplete chroma/luminance separation: https://en.wikipedia.org/wiki/Composite_artifact_colors#CGA
Now I want to know what will happen if you mix these two hacks.
Can anyone here with some knowlege and a C64 do a video for us please?
As far as I am aware, C64 does not suffer from this issue. I guess the luminance signal was filtered well enough.
It would be cool to see this on a 144Hz refresh monitor
All the examples become a solid color without any flicker visible at all on my 144hz monitor, for anyone wondering.
That wouldn't make a difference for this purpose, assuming the browser could render at 144FPS (which it presumably can).
Interestingly, this comment from the article:
Notice how a third colour appears? That shade of purple is not being displayed. Only red and blue are appearing - your eye is fooled into seeing a colour that isn't there. I promise I'm not cheating. That's colour switching in action.
Isn't quite true. Almost all monitors are LCDs these days, and LCDs don't shift between colors instantly like CRTs do, unless they're running in a mode where they "flicker" the backlight (nVidia calls this "ultra low motion blur"), turning the backlight off while the LCD cells are switching to a new color, then back on when they've finished.
Indeed, perhaps even more so on a 144Hz monitor, the LCD will spend a significant part of the display cycle somewhere between blue and red, since you've only got 7ms between frames, and even so-called "1ms response time" TN panels are not likely to spend less than half of that transitioning between colors.
Isn't quite true. Almost all monitors are LCDs these days, and LCDs don't shift between colors instantly like CRTs do
CRTs turn on basically instantly, but the phosphors do take a little while to fade. Usually not a whole frame unless they're a really cheap/shitty tv though.
the phosphors do take a little while to fade
Interesting. I wasn't as well informed back then (shit internet access in the womb...); I wonder how long the phosphors on a typical TV set of the Commodore 64 era took to get down to, say, 10% of peak luminance?
I did a little more looking and it's not as long as i thought (or i had an especially shitty tv when i was playing with a camera many years ago).This demonstrates it nicely https://youtu.be/lRidfW_l4vs
Looks like 0.1-3ms depending on your definition of faded if that's scanning at 60Hz.
There are probably specs somewhere.
Pretty interesting to see how the differently colored phosphors have different fade times. The blue fades very quickly, the green lingers for a line or two, and the red is visible for quite a long time relative to the other colors.
I assume this is because the CRT transfers roughly the same amount of energy to each phosphor, while the lower-frequency phosphors emit lower-energy photons and thus take longer to give off that energy? At any rate, cool to see it in action.
It's something like 3-4ms.
Usually not a whole frame unless they're a really cheap/shitty tv though.
If they fade too quickly, your display will look flickery, though.
I recorded a video with 240fps (iPhone) of my 144Hz monitor doing the color switching thing: https://youtu.be/7j_Y5buFJKw
Seems to actually be doing the full colors
Didn't mean to claim there would not be points in time where the luminence wouldn't be clearly red or clearly blue, just that the claim that purple wasn't being shown at all isn't correct. Pause the video and you can see purple in the middle if you get the right frame. Also gamma plays a huge role here; human vision isn't linear.
Of course, purple isn't being shown at all in a different sense; color monitors are really just tricks on human eyes because we can't distinguish between a mix of blue and red and purple (they aren't the same at all!).
Isn't purple a colour that's not on the spectrum in the first place? It only exists as a mix of red and blue in the first place.
Not relevant. The browser has no trouble feeding image frames to a 144hz monitor at its native refresh rate in these simple examples.
Well, on latest ubuntu at least, something has trouble.
(It's a pain in the ass to get it to stick to a 144hz mode too.)
What about the dragon itself? Does it just look semi-transparent or does it look flickery? On 60hz it looks very flickery.
Unless you move the mouse over it at which point you see the mouse ghost image in different colors.
In case someone wonders how many FPS they got: https://cable.ayra.ch/FPS.php
I prefer the UFO test myself https://www.testufo.com/#test=framerates
This permanently gives a stutter warning. I am pretty sure a GTX Titan can render a few ufos at 144FPS.
Hardware acceleration enabled?
Of course, at least that's what chrome://gpu/ claims. Don't know what's wrong, shows solid 144FPS but spits out warnings. Firefox is even worse. The issue is isolated to browsers however. Games that use direct rendering methods run fine.
Seems Chromium on Linux is stuck at 60FPS : https://bugs.chromium.org/p/chromium/issues/detail?id=535392
Then you have a better pipeline than me... I don't know which part doesn't keep up, but for me it flickers horribly (with 144hz refresh rate on a 144hz screen)
Interesting. For me they become super flickery and I can see all three colors distinctly. I'm using linux with the open source amdgpu drivers, what's your setup?
Win7 x64, Radeon R270X with its latest default driver, no settings changed. Monitor is the Asus VG248QE, in case that's relevant.
Huh, I have the same monitor.
Are you sure everything is running at 144hz? You'd think it would flicker more noticeably at high refresh rates because it's only flashing at 60hz.
Yes, I'm certain. I have no idea why my experience seems to differ from everyone else's though.
Woohoohoo, look at Mr Rich Guy with his fancy Commodore 64! Probably has one of those fancy "monitors" that make the background BLUE instead of green and doesn't have to plug it into the family TV set in-between episodes of The Waltons and Welcome Back Kotter! AND HE HAS A DAMNED FLOPPY DRIVE! What is this guy, a lost Kennedy???
Meanwhile, 12yo mean was pissing around with my Vic 20 that i saved all summer to buy. No tape drive; spending hours typing in programs from the back of that manual, telling everybody in the house DON'T UNPLUG MY COMPUTER!!!!
Some people live the life man. </s>
No tape drive
Dude. You realize you could have used a crappy Radio Shack cassette player for this?
Source: Timex Sinclair/C64 ghetto tape drive user.
I eventually figured that out. I remember I had to make a cable for it. Later on, I bought a c-64 second-hand with a 5 1/4 disk drive. Much, much later than that I wired the c-64 tape drive to the serial port of my first real computer so I could play the games on an emulator. I remember playing one of the Ultima games that way for a while. Good times.
The tape drives loaded data at a rate of 50 bytes per second.
Think about that.
If you were loading a good game, which probably used all of the C64 available RAM, it would take 20 minutes from hitting enter to when the game would start.
That's assuming you remembered to flip the tape over right away.
Commodore 64's available RAM wasn't 64k, it was more like 38k I think - contiguous anyway. The 64k was there, but overlayed with other things, you couldn't do one continuous load to it, you'd have to switch out the basic rom at some point (which would disrupt the load), you'd have to switch out i/o, and the kernal rom to see the full 64k...
* edit * come to think of it, writes to rom would go to ram, so you could do it, but you'd still have to switch out i/o at $d000-$dfff, which would have interesting side effects.
I think a bunch of that memory was recoverable by unloading the kernel/BASIC. That's probably why you had to load a game, that then proceeded to load itself.
Imagine arguing about plus or minus 26 Kb today. You wouldn't even notice that difference on an email attachment.
You needed five (5) 60-minute cassettes just to store one (1) MB of data.
My 128 GB USB stick can be filled by my laptop in less than 10 minutes.
On the other hand, recording 128 GB on the Commodore dataset would require 640,000 cassette tapes and take over 70 years of recording with somebody loading or flipping a tape every half hour.
It wasn't much slower than the disk drive. 8-10 minutes to load something from disk was pretty common.
Agreed. Glad I had an Epyx Fast Load cartridge!
Bonus: It came with a hexadecimal editor for reading and modifying files on disk. Very useful indeed.
As a teen shopper, I spoke to a 35ish year old guy in a Child's World in New Jersey in ~1984 and he said he didn't mind the slower load speed of his C64 cassette drive because he would "have a cup of coffee" while it was loading. A statement I've remembered all this time.
TI99 4a and our own monitor AND tape drive. Temple of Apshai all day.
ok it was the neighbor's.
My high school computer lab was full of Commodore 128 machines. I was king of that class - unfortunately it was the ONLY class I was every very successful in.
Me too pretty much. World Cultures and Organic Chemistry were the only others I excelled in.
Look at this guy, has a neighbor with his own freaking temple!
As someone born in 85 all i can say:
Filthy C64 peasants and your 64KB RAM and your pathetic 1MHz CPU, i am even surprised that this toaster runs Giana Sisters lol. Come back when you got a real machine! I have a neat gaming rig, Amiga 500, has 512 KB RAM and 8MHz but yeah, you can keep on playing your low 320x200 resolution while i am sitting here enjoying my 640×256 ultra detailed North&South.
I bet Silkworm doesn't even run at 50fps on that machine lol oh and yeah, enjoy your LOAD "8" while we already got icons and a proper userinterface!
Jokes aside, we were happy to get our hands on any of those systems. You either had C64 or Amiga and if you had one, you had all the games that your whole village had because copying games was easy af, all you needed was an empty disk or you erased one.
Just load up GEOS to get a graphical OS on the C64.
It actually worked pretty well.
I remember it taking a long time to load and being so slow as to be almost unusable. p
True. You wouldn't want to reboot. I guess it was more a proof of concept and allowed Commodore to look like it was competitive with newer systems
Ours was cacked over by its own DRM stuff. Hundreds of marks down the drain.
X-Copy Pro ftw!
saved all summer to buy
Sarcasm aside, that's still a very first-world comparison. Making enough money as a kid in a summer to buy a home computer is not something most of the world could do.
ehh. it was $100 in 1980-something. That is only $300 in today's money. Pretty easy for a kid doing odd jobs to come up with $300 over the course of a summer in a large portion of the world
A large portion of the western world, yes. There's a whole lot of world outside of that.
You're a lot of fun at parties, aren't you?
A lot of that world have phones that cost more, even taking inflation into account.
That world was much smaller in 1980. Back then, the standard image of a Chinese city was one with bikes everywhere. Today all of those people have cars.
Look who's talking. Vic 20's sold at an introductory price of US$299.95 (equivalent to $744.39 in 2016, source). I had to deal with using the computer room at my school or at my friend's house. How I wish I had a Vic 20 or a C64 of my own back then! Our first game system was the Atari 2600 that they re-released for "under 50 bucks" just as everyone else was hyping on the newer NES system. Some people live the life man ;-)
ok some respond on how they grew up homeless to shut us all up.
Hand-me-down Apple ][+ here. Monochrome green monitor, but we did have floppies (the full-height, chunky-door ones). One Christmas my dad dropped $150 upgrading it from 48K RAM to 64K. Whole new worlds opened up to us... Okay, just that super-rudimentary, 1-dimensional RTS with the choppers, but still.
The Tanks vs Aliens game from the back of the VIC 20 instruction manual was the first thing I ever 'programmed'. it got me interested in coding and I have been doing it on and off (though not professionally) my whole like.
I don't know exactly what can trigger seizures, but be warned that clicking on some examples in the article will show quickly flashing images.
Whoa there, u saved me from a seizure. Thx.
Yeah the author really should have given a warning about that.
Well he explained the flashing in detail in the body of the article. If you are photosensitive I think in general you shouldn't browse the internet clicking on random things without reading them first.
Although it doesn't says so, is this article about interlace modes on C64? They are quite popular among demoscene graphicians, especial the interlaced FLI mode.
Here's a piece of graphics where I have only used the 16 given colors of the C64 and "made more" by mixing them with the help of interlace.
Nice. Can you try combining these two tricks?
Not really - the article is about real-time 60fps effects. Interlace modes were absolutely not real-time. I'm going to write a followup on that stuff though!
Even more impressive, I read this on a wireless, battery-powered supercomputer I pulled out of my pocket, sitting on the toilet.
Just imagine how poor would be your life if you could not see flickering squares while sitting on toilet.
This is the future we all dreamed of.
Man, watching the Curiosity streams live was such an awesome moment. I'm so glad I stayed up to watch that. Hard to believe it was over 6 years ago.
That would probably be why it doesn't feel that way. In my defence, I was tired!
Every day since then I've been plunging further into the future.
You're traveling into the future at 1 second per second!
Why was your battery-powered supercomputer sitting on a toilet? For extra cooling?
Especially when the toilet you are sitting on is a Toto Neorest which has more processing power than a Commodore 64
you've got a fucking miracle sitting under your desk.
Damn right. I worked with a Cray Y-MP in the late 1980's, and when I got a Power Mac G5 about 15 years later, that Mac benchmarked faster than the Cray. Now I've got a faster computer that's smaller than my wireless ergonomic mouse strapped to the back of my HD monitor.
Imagine what you'll have in another 40 years...
In July 1987 the Acorn Archimedes was released with the ARM 2 CPU that ran at 8MHz and could push 4 MIPS. In February 2012 the Raspberry Pi was released running at 1.2 GHz and a thousand times the instructions per second (>4,400 MIPS).
25 years to go from a really expensive (£1,000+) desktop system to a cheap pocket computer a thousand time faster.
5 years later and the ARM core in many SoCs are many times faster than even this.
Even something regarded as an architectural failure like an AMD FX chip is four to eight integer cores and two to four hardware floating point units with out of order execution, advanced SIMD capabilities, capable of addressing vast quantities of memory, and scads more advanced functionality. Its underwhelming IPC is still sufficient to emulate any 8-bit computer with a high degree of fidelity, with plenty of compute capacity to spare. The clock speeds can scale based on demand and reach over 3 GHz routinely. Even 20 years ago this would have been witchcraft. And now it's something people argue you shouldn't even consider purchasing. You're absolutely right.
4GHz. If your FX-8xxx is not running at 4 and above on all cores at max load, it's underclocked.
Even 20 years ago this would have been witchcraft.
Dude, we had Pentiums in 1997. Everything here was predictable from the microarchitectures of the Pentium Pro, and later the AMD K6, down to multicores and memory controller integration. And as the other guy points out, the gigahertz war happened like 17 years ago, which is close enough to the lesser pedant.
True, twenty years ago processor speed was increasing by huge amounts... Far more than today. We thought we'd all be using terahertz computers today.
We can squeeze tera-scale ops per second out of banks of parallel processors today, which was sort-of predicted in the 80s with Transputers and academic ideas about asymmetric multiprocessing. But to be fair, only thing we've got in the last 10 years was another gigahertz, two more cores, and wider & deeper out-of-order pipelines.
Luckily hardware has become better over the years, not worse. For example branch prediction latency has become less of a problem, ignoring Netburst as a fluke; and on-chip L2+ caches are bigger and faster than 10 years ago.
In the mid-90s Byte magazine (well respected at the time) had an article arguing that 1 Ghz was impossible because at that speed current couldn't change direction quickly enough on a processor. They'd have to increase the turning radius of the signal paths on the processor too much to allow 1 Ghz to work without the signal bleeding.
remember when computers started reaching the 1ghz and higher clockspeeds and a lot of people were worried that our computers would be literally microwave-ovening the users?
Dude, I remember the days when there were heated arguments on IRC over whether realtime MP3 playback during FPS gameplay would ever be a realistic goal. Then MMX came along and upended that apple cart, and SSE put it to bed forever.
you've got a fucking miracle sitting under your desk in the palm of your hand.
It's totally affordable for most people (although most people choose to spend money on other things) to have a system capable of 23 Trillion calculations per second.
Hell, for the price of a candy bar you can get something similar in performance to a Cray-1
Look at an old SD card, like 1gb or even the sub-gigabyte ones ... the processors and storage (ram and flash) inside those things absolutely dwarfs anything available to anyone in the world for a good portion of computing history. Now it's basically disposable.
While it's not just any SD card, the Transcend wifi SD cards have an ARM CPU on them and while it's not a fast one it should be able to solidly outperform a CDC 7600.
To be fair, most SD cards/USB flash drives have ARM cores. The Transcend wifi one just has a bigger one.
I think you can build 40 TFlops for about $6000 now.
I suppose flickering will be less noticable if you dither the image, mixing both colors like a chessboard and the second frame is the same texture but shifted 1 pixel.
Dude should put epileptic warning in his post title.
You're correct. If I remember correctly flashes generally need to be between 5 and 30 Hertz to cause issues for photosensitive epileptics.
The cycle time for most monitors changing every frame is 30Hz (1/60th of a second for one frame and 1/60th for the other). So these images fall in that range.
but each 1/60 is different
Probably less practical in the time those sorts of color tricks were necessary though. Usually they just changed palette entries, redrawing the whole image 25 times a second or whatever would be hard to accomplish on something like a Commodore 64.
AKA pallette bashing.
You could also time the change so it happens mid refresh. This allows you to use different colours on the top part vs. the bottom part of the screen. It meant that you could have more visible colours on screen than possible in static images.
I think you're talking about copper effects. They also were often used for that bouncing horizontal bar effect in demos. Ahh, memories - though I got in a bit later, people were still doing that stuff on the PC. I remember downloading collections of Turbo Pascal demo programming stuff with examples of copper.
I'm talking about straight up mid-sync pallette bashing on 8bit systems.
Which leads me to mid-sync screen resolution and depth changes, which was especially awesome because you could have a game that had 640x256 2 colour resolution for part of the screen and 320x256 4 colour for the other part. BBC Micro Elite did this to have high res wireframe ships and a colourful but lower res HUD in the same screen.
Yes, me too. Both of my links are about that.
c64 didn't have no fancy co-processor to change stuff mid-screen, you had to tell the video chip to generate a CPU interrupt when it hit a certain line, then sit there busy-waiting if you wanted to change a register every scanline. And account for the video chip stealing a lot more cycles for DMA when it fetched a row of characters or sprite data.
I mean the end effect is pretty much the same, visually, but the terminology is very different due to it reflecting the underlying hardware.
c64 didn't have no fancy co-processor to change stuff mid-screen
Yeah, neither did PCs with VGA. The process to implement copper bars was pretty much the same: Wait for vertical retraces and horizontal retraces, change palette entries appropriately. It was even more crude and low level on the PC, you had to busy wait on a port - you couldn't arrange for an interrupt when the retrace occurred.
Obviously there are some low level details that are different, but the way to get there was pretty much the same on both machines. Here's some x86 assembly code for doing the effect in text mode: https://www.hornet.org/code/effects/raster/gb_coper.zip
You can see from COPPER.ASM that it's just waiting for the retraces (by busy-waiting on port values) and then "straight up mid-sync palette bashing". I'm really not sure what you're arguing about.
It would have been difficult to do on C64, as the standard color graphics mode did not have much flexibility. Without expending CPU to reprogram the graphics chip mid-page, there could only be 4 distinct colors within each 8x8 pixel area, and the horizontal direction was half resolution. The 4 colors came from combining adjacent horizontal pixels and using those as 2-bit index into character cell's local color palette. IIRC you can control two of those colors per each 8x8 character cell as you have 8-bit color value in the charcell and you only need 4 bits to express one color, but the 2 others are global to the screen.
source: shaved neckbeard
I think you missed a bit of it.
I hate how any and all expressing concern for people with medical issues has become "neckbeard SJWs spouting off for no reason".
That's because it is. You're not a doctor, and doctors make no diagnoses over the net.
E: What's more, it's always grand mal epileptic seizure that's being brought up. When in actuality the most common photosensitive symptom at all is migraine, which some people are predisposed to regardless of having epilepsy or not. Is there any concern for the migraine-prone? No; they aren't putatively guaranteed to swallow their tongues over a web page.
Who diagnosed anyone here?
Back in my day neckbeards were the anti-SJW, and you would qualify.
Back in the day I wrote a set of utilities for the Amiga 500 to mix colors like this. I would download jpegs, decode them in 24 bits, and then create two 32 color images that would flip every scan. I realized it was a problem to get accurate colors when I tried it on different monitors. My friend had a long phosphor monitor and the images looked funny. I spent a lot of time trying to calibrate the palettes but in the end realized it was only a novelty.
Besides, I got a 1200 shortly after that and 256 (real) colors was plenty!
For most typical pictures, converting them into HAM mode would probably have been better.... And/or a combination of HAM and a copper-list.
Yea. I was experimenting to see if the flicker was preferable to the fringing. My ultimate goal was slicing the scan lines. But I never got that far.
It's never too late ;)
TIL that a c64 + ctr does a better job at switching colours than my browser + brand new computer.
If you like this kind of stuff you should come hang out on /r/RetroBattlestations!
Awesome. Thank you for sharing this.
I thought this was going to be a bit like the colour dithering/blending/NTSC timing abuse employed by 8088 MPH but this technique seems like it'd be much simpler to implement. Along those lines, does anyone have any examples of demos using this?
I have a couple problems with this.
First, the palette he shows on his website doesn't match the palette (RGB values) on Wikipedia. Which is correct?
Second is that he doesn't attribute where he got his own C64 palette map from, the one I linked above. I found this post with the same image from 2010. Before I found that I thought he created the color palette image himself, which he didn't, so this just seems dishonest to me. The reason I even found it was because of my first point, searched google images for Commodore 64 palettes.
Author here. Good points!
I couldn't find the original source for that palette image. I only mentioned in comments so far, http://www.aaronbell.com/secret-colours-of-the-commodore-64/#comment-3219358797 - update, it's now credited in the article.
The palette I'm using is from http://www.pepto.de/projects/colorvic/ - I'm not happy with it and I'm going to update the article to use www.colodore.com
Thanks for reading and commenting.
Hey! It's cool you care and I'm glad to see the update. Awesome!
I've been wondering, wouldn't you be able to get even more colors by changing the ratio from half/half to 2/3 1/3 between each color too or would it just flicker?
It looked flickery enough with an even split on a real C64, so you're probably right.
Unrelated to the content of the article:
I owned one of those C64 depicted. And I loved, and still love, the color choices for the case, together with the rainbow stripes next to the logo.
It was such a beautiful maschine!
and such horrible horrible power supplies.
I wonder how the magazine article did the image capture ? If they did a frame grab they would've only got one of the colours. A digital camera would've shown either one colour, or maybe a tear and were extremely rare back then. I guess they captured it then coloured it in?
The author of that 30fps video uploaded a 50fps one:
but it still doesn't have DAT SHADE and it kind of flickers. (Make sure you watch the video in 720p50hz)
Awesome, thanks for the heads up.
Videos in this thread: Watch Playlist ▶
Play All | Info | Get me on Chrome / Firefox
At western parties, yes. ;-)
5-1/4" Floppy drive? You were lucky.
I rolled with the cassette recorder/player.
Great, now I've got a migraine!