Do we really need hardware sprites?

  • Thread starter Thread starter protek
  • Start date Start date
  • Replies Replies 7
  • Views Views 262

protek

"Takai desu ne." -"Jinsei da."
Joined
Feb 17, 2008
Posts
3,999
Country
Finland
Region
Oulu, Pohjois-Pohjanmaa
Back in the good old days I remember some computers been criticized of not having hardware sprites. I've just recently learned that quite a few of the popular makes didn't have them. Amstrad CPC being one that surpriced the most and, well, Atari ST, that didn't have hw sprites until the STE with blitter was introduced.

Now, while I understand that hw sprites makes life easy for not having to worry about drawing the background behind the character, I still don't think that's really a big deal. It's just up to the programmer to take most out of the hardware at hand. Take Way of The Exploding Fist for example. The original port looked downright awful but the 1993 Plus 4 64kB remake falls nowhere short of the C64 version. With 121 colors, you could've actually make it look better.

What was the common technique to make characters in computers lacking hw sprites? Was it simply re-defining the character set or were bitmaps actually used? Was there any limitations, when using a re-defined character set like placement and movement?
 
Last edited:
Hardware sprites, although much difficult to work with than blitter objects (bobs), they don't have restrictions. They can be as big as you like for example, while in blitter objects you have some restrictions.

But BOBS have their advantage too. For example in AMOS, you can have as many bobs as you like, with much more colors than sprites, and they are far easy to handle.
 
Actually sprites have a lot more restrictions than blobs, buy are a lot faster because they are hardware layers - so to speak. They were important for fast graphics back then, because the blitter or equivalent processor were nok fast enough. It's the reason why mega drive and snes games were so much faster than amiga games for example. The amiga's hardware sprite limitations made most devs use blobs, which are very versatile, but also much slower. Fast games would use a combination or trickery to get around sprite limits.
 
I'm thinking the early comps had fairly limited CPU horsepower and memory bandwitdh so any hardware that could offload that and work on it's own was beneficial, though implementations varied a lot.

Hardware sprites usually had som size, number and color depth/palette restrictions though.

It's a bit different but compare modern 3D card for PCs with software solutions, hardware can do a pretty substantial number of polygons with nice texturing and some lighting/shadowing, and some post effects.
All of this you can do in software but it's going to be several magnitudes slower.
 
Sprites are very useful and do have some benefits, for example they can be placed at any position on the screen with no hardware overhead as opposed bobs that can be placed on 16 pixel boundries with little overhead but anything inbetween requires considerable more blitter time...
Sprites on the amiga can also be multiplexed so although 8 is the limit via legal OS and most basics etc, with clever coding it is possible to have many many more, though there are quite a few restrictions.
I think I read a post on eab from maybe galahad/pmc/codetapper/photon that they had created a full 320x256 display using no bitplanes, just multiplexed sprites... so basicly just constantly reloading 8x16pixel wide segments :bowdown:
 
Hardware sprites are a trade-off between available bus bandwidth and processing power. The Amiga blitter has to chuck a lot of data around (comparatively speaking) in order to achieve the process of moving a graphic image around the screen. A hardware sprite is just a hook into the display refresh and thus can be repositioned without (over)writing display data.

The reason there are only a limited number of sprites (rather than being able to fill the screen with them without trickery) is that fetching sprite data is not a 'free' operation, there is a cost involved. Same as on the C64, there is only so much bus time available, which is shared with the rest of the system.

At least, that's my general understanding of it.

The reason they are 'needed' on older systems is that they provide benefits, such as a smoothly updating mouse pointer that doesn't cause horrendous processing impact and doesn't actually overwrite screen data (i.e., is invisible to any program querying the contents of the screen buffer).

Other advantages of Amiga sprites are that, on a 16-colour bitmap screen, they use a completely separate palette. There is also some fairly basic, but useful collision checking capability available.

Try doing pixel-perfect collision checks on a PC. There's no way to achieve it that doesn't involve a loop that manually scans each pixel, one after the other!
 
Sprites on the amiga are very handy I used them for a star field on one of my old demos probably an odd way of doing It but that's the way I rolled back then :D
 
Sprites on the amiga are very handy I used them for a star field on one of my old demos probably an odd way of doing It but that's the way I rolled back then :D

And more power to ya for that ;)

Personally I always used sprites for bullets.
 
Back
Top Bottom