It feels like a long time since my last code post (and I’d say it has been). After being incredibly motivated last year after attending my first Syntax demo party, I got stuck into creating a few simple effects. Other interesting projects came up and my C64 demo coding took a back seat. Five weeks ago I got the email reminder about Syntax and decided there would be enough time to get something together. That did happen and I achieved my goal of entering a production into the Syntax#14 old skool demo category.
The last 5 weeks have been incredibly motivating, so while the energy is strong, I’m going to get back into posting up some details on things I learn once again. I’ve put a few things into the Syntro demo I’d like to cover in separate posts over the coming week or so.
To start with though, an effect (if you could call it that) which I’ve been interested in learning about for awhile is removing the top and bottom borders on the C64 display.
Since posting screen shots of my code in previous posts, I’ve received a number of queries from people asking about what editor I’m using and what the syntax highlighting is. So I thought I’d go into it quickly.
My choice of editor is Sublime Text 2. I find it the most feature packed and flexible editor around. Plus I can use it on the Mac, Linux and Windows to maintain a consistent editing environment. When I began writing 6510 assembly a few weeks back, I couldn’t find much in the way of syntax highlighting for it. Once I settled on using the win2c64 assembler, I set about creating a custom theme and syntax highlighting definition to use with it.
The text scroller. The single most used demo effect of all time. An effect that always fascinated me on the C64 back in the day, but (like with the colour cycle effect) something I could never get my head around all those years ago. I have often thought to revisit coding on the C64 JUST to successfully produce this, but never got around to it. Now is the time.
The time spent diving back into assembly language over the last two weeks has been quite fruitful. The lessons learned and knowledge gained will come in handy here. The goal is to create a simple, 1×1 character scroller. Once I can do that, it shouldn’t be too difficult to expand it further in the future to jazz it up.
Time to start getting familiar with using the zero page and use an interrupt for some simple effects. I decided to create a basic colour cycle effect that updates the colour map, shifting the character colours in a direction. Back in the day, I couldn’t get my head around how to actually achieve this via assembly language, but I’ve had a lot of experience in programming since then, so have a much better idea of how to achieve the effect.
A simple effect I remember seeing in many intros & demos was what I always called a “Widescreen” effect. This is where the top and bottom borders extended all the way to the edge of the screen. It gives the impression of parts of the side border being removed. There are methods for actually removing both the top and bottom borders, but that’s more complicated and something I will look at in the future. For now, I will look at using the raster bar to toggle the screen and border colours at specific scan lines to give the impression of a wide screen display.