The sprites would have to be hardcoded, instead of being interpreted from images. You would also have to be extra smart about what you're calculating/rendering, but keep in mind that your screen is probably only 40 characters wide, so the amount to render is exponentially smaller.
You'd be amazed what can be done on those older computers when the developer understands how the processors work on the ground level.
At the very least it'd be an impressive tech demo for something like the Commander X16[0], a new 6502 based computer running at 8mhz.
Well, I was programming on C64 way back, and am pretty much aware what the system can and can't do. Sprite crunchers, xor filled vector fillers, etc. are familiar to me.
Cc65 would only hurt the effort. You need a full spectrum of assembler tricks to get any kind of performance out of C64.
C64 (PAL) has just 19k clock cycles available per 50 Hz frame. Since fastest instructions are 2 cycles, that's at most 9.5k instructions. Realistically closer to 5-7k. No multiply (hello table lookups!), no divide and not even 16-bit add.
Or in other words, it takes maybe 10k+ cycles for C64 to just "memcpy" 1000 bytes of characters!
You could implement something like Asciicker in a limited demo... but it'd be more like a souped up video player. Which, sadly, is a rather common technique in recent C64 demos, but understandable due to the limitations.
I think it could be done, with reasonable sacrifices.
Yeah, like dropping rotation. I think it'd be easier to do 80x50 rendering than ASCII.
> The framerates were atrocious...
That's the sacrifice you'd need to make.
Geoff Crammond (author of The Sentinel) wrote another game that's graphically way more impressive in this context: C64 Stunt Car Racer. https://www.youtube.com/watch?v=KMgjmIW8fd8
This is not to say The Sentinel wasn't an amazing game in all aspects, including graphically. It certainly was.