Hacker News

ibobev
C64: Putting Sprite Multiplexing to Work bumbershootsoft.wordpress.com

boomlindea month ago

You can chain handlers by simply rewriting the interrupt vector. Something like this (for a sequence of two handlers):

    handler1
        ; ...
        lda #<handler2
        sta $fffe
        lda #>handler2
        sta $ffff
        lda #line2
        sta $d012
        rti

    handler2
        ; ...
        lda #<handler1
        sta $fffe
        lda #>handler1
        sta $ffff
        lda #line1
        sta $d012
        rti
To my intuition it seems it would be quicker, though slightly larger.

I've only skimmed through the article so maybe there's a reason the author considered this and opted not to. Running out of memory maybe?

classichasclassa month ago

Nitpick: I think he still has the Kernal banked in, so he'll need to use the soft vector at $0314. But that is exactly how I've done chained raster splits otherwise. It's really the most straightforward approach.

neonz80a month ago

If you put both handlers in the same 256 byte page you can get away with only updating the low byte of the address.

schlauerfoxa month ago

I'm ignorant of most C64 stuff being an Atari kid, but I did find this pretty impressive (it's a cheat) with seemingly 9 sprites at once. https://www.youtube.com/watch?v=Ws4twUyt-MY

Tuna-Fisha month ago

The demo has brilliant pacing. When it starts with the sprites moving in a big circle, initially I'm not impressed at all, because C64 has 8 sprites per line, and changing the sprites to be drawn when the screen is halfway drawn is pretty much the first trick you learn. Then the sprites move to the top of the screen, where they are all on the same line together, and my jaw drops.

classichasclassa month ago

Plus, Linus did it in the border, where only sprites can be, so it can't be a trick with bitmap graphics or custom characters.

Fr0styMatt88a month ago

That music too! Dang the SID sounds good.

kickahaa month ago

I have been waiting forty years to learn how to do this.

hn-front (c) 2024 voximity
source