It’s been quite a while since we released anything here at C64CD in part because, as noted previously, your correspondent drifted away from programming demos for a while. But over at the C64 Scene Database there’s a fun competition running for programmers to create intros and, considering the previous groundwork of the last three Code Notes posts was originally intended to lead up to a C64 release along those lines, the announcement seemed like a good excuse to get something finished!So the very imaginatively titled Clonetro is based on a number of C64 crack intros from the mid 1980s; the top part of the screen takes inspiration from the Dynamic Duo crack intro covered a little while back for the logo itself and another by Yeti Factories one for the bias relief frame around it, various Ikari intros provide the basis for the sprite effect under the scroller in the middle of the screen and your correspondent had a particular Jewels intro in mind for the moving grids at the bottom which was again covered previously. In most of these cases the intros cited may not be the originator of said effects, but are at least the ones where your correspondent saw them first “back in the day”.
As with any competition there are rules to abide by with the most notable being that each entry must use no more than 16K of the C64’s RAM because, in real world use, an intro is usually “linked” to a second, compressed file which takes the rest of the available space. Clonetro decompresses to use memory from $0800 to just before the $3a00 mark so, apart from some zero page overheads, is around 12.5K. The code is also completely “legal” in the sense that it doesn’t rely on self modification for the moving colour bars that pass through the logo, instead reading colour data with commands like lda (colour_read_1),y and changing the contents of the two zero page locations referenced by the label colour_read_1 instead. As always, source code is available for those who want to prod around further.
Your correspondent has also realised whilst writing this post that he’s used the same “two colour registers changed per scanline” trick a few times now without really discussing the basics of producing raster bars on the various 8-bit systems beforehand. The intention here has never been to teach beginners to programming as such (although people are getting in touch to say that they’re learning things from the C64CD source code posted to Github) and there’s honestly no need to understand the simpler methods before looking at what’s been done here but this is potentially the topic of a future post.