It's amazing how fast you can get back up to speed on something when you have an internet and search engines and emulators to test things in.
Having to reboot your development environment to try something out was a real pain in the 80s. You kids don't know how good you've got it ...
I'd like to point out here that if you're not familiar with the restrictions of the #C64 that stripe across the middle probably doesn't look like much of an achievement. Trust me, it's cool.
I commented up the source code for reference, it's grabbed from a ton of different tutorials and examples, I'll do a proper blog post about this later.
This was a huge help in getting a basic development environment up and running, really fast:
This is about to point I got to in coding for the 64 about 30 years ago. 😀
@mike I've been debugging a STM32 thing the other day and while I watched the SPI bus my 4 channel scope, using gdb to single step through my code, looking at the register description in a fully searchable digital document, I realized that tracking down a similar problem would have taken weeks back when I started using microcontrollers. Tooling really got so much better & cheaper over the last decades.
@sebastian I think the biggest modern bonus is simply just having multiple computers, or even just enough power to casually spin up a virtual one when you need it and being able to debug code things that think they're the real thing before moving it out into the world.
Access to information too, of course. That's amazingly improved. Yeah, everything's so much easier now.
@mike Let's not forget the little things like proper editors. I remember using GWBasic where you could only replace entire lines. And you had to renumber lines to fit one between to existing lines.
And version control ... I recently looked old projects that still had subfolders like release1.0 release1.1 release2.0_rewrite inside them.
When I tell first semester CS students about having to type my own line numbers they immediately question my sanity.
@sebastian you are so right ...
I can't even recall what I used as an editor way back, I think I've just suppressed the memories.
@mike @devurandom @ajroach42
If you changed the sprite location pointers and their coordinates on a raster interrupt, you could effectively display different sprites on different horizontal areas of the screen. What didn't work was collision interrupts, because you still only had 8 actual sprites, so to find out which sprites collided, you needed to do more trickery, like finding out where the raster line was at the moment, and so on.
@mike is that like a pixel by pixel thing you had to do to achieve that? 🤔
@Steve nah it's just changing the colour of the entire border, but syncing it up so it happens when the screen is being redrawn at specific points.
@mike ah sweet!
@mike Good job!
@mike Nice meet to you in here,I like your site. when I was a boy I used to IRC chat, but nobody used IRC now.
That was my first exposure to interrupts on a CPU. I'm assuming you used the HBL here?
You're chasing the beam! That's raster timing folks. Yeah, that's hard.
Do you have the source code (or guide you followed to create your code) posted anywhere?
@profoundlynerdy oh hi, yeah I'm writing a bit of a blog post up about the whole thing as I rediscover it, I'll have sources and links in there. Right now it's a soup of cut and paste junk where I've tried different stuff and all uncommented.
This was a very helpful resource: http://www.antimon.org/dl/c64/code/raster.txt
@mike cool. Thanks!
I'm teaching myself 6502 assembly right now. I'm about 50% of the way through the Jim Butterfield's Machine Language for Commodore Computers. I'm using 64TAS on Linux to learn.
Eventually, I want to master source code archeology and reconstruct the source code to some of my favorite games. That may be beyond my reach, but I won't know until I try.
Consider this a friendly, local pub. Make yourself at home, bring your friends, have a good time! Meet new people, have a laugh, enjoy the ambience, and the Oxford commas.