C64: Putting Sprite Multiplexing to Work

(bumbershootsoft.wordpress.com)

67 points | by ibobev 3 days ago ago

8 comments

  • boomlinde 2 days ago 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?

    • classichasclass 2 days ago 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.

    • neonz80 a day ago 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.

  • schlauerfox 2 days ago 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-Fish 2 days ago 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.

      • classichasclass 2 days ago 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.

        • Fr0styMatt88 2 days ago ago

          That music too! Dang the SID sounds good.

  • kickaha 2 days ago ago

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