View Single Post
Old 21 May 2015, 14:07   #128
Registered User

Join Date: Aug 2014
Location: Leeds, U.K.
Posts: 38
Originally Posted by Apollo View Post
But, again, these 'limitations' on the C64 lead to known solutions. If you want to create a sprite multiplexer on the breadbox, I assume you don't have very much options how to solve this. There are more options how to establish a bob/sprite engine on the amiga f.ex. feeding the blitter via cpu vs feeding the blitter via copperlist.
It's more complicated than it might seem... there's a number of ways to multiplex on the C64, the simplest is to just have "zones" on screen that hardware sprites are restricted to; something like Delta does this with one area for the enemies and two more which are sometimes enabled for the scrolling backgrounds (they're hardware sprites as well, only the starfield and bullets aren't) with just the player's craft untethered so it can move around the entire playfield. There's a few variations on this as well where only some enemy sprites are recycled like the PD game Danger Zone which has one sprite reused half a dozen times for an asteroid field, but it still places tough restrictions on vertical movement for those sprites.

A sorting multiplexer (which is sometimes what people mean when they just say "multiplexer", the terminology isn't exactly set in stone) is a better option but that flexibility brings an extra level of complexity too and will munch it's way through resources like Pac-Man in a chemist's. The game has to A) run a sort of some kind and B) spend time each frame waiting around to reposition sprites, all of which are taking CPU grunt away from the other tasks that need to be running like game logic or the scrolling. The sort itself gives you a range of choices too and implementing some of the fastest sorts with two index registers and an accumulator can be "fun", but getting either the choice or implementation wrong can lead to serious problems later and the processing power isn't really there to "brute force" the job with a bubble sort.

(Well okay, in theory it can be done with bubble sorting but only by perhaps presorting things to reduce the odds of a worst case and trading the overheads off against everything else and.)

And now i'm going to run away and hide again. =-)
TMR is offline  
Page generated in 0.03830 seconds with 10 queries