English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Nostalgia & memories (https://eab.abime.net/forumdisplay.php?f=18)
-   -   Sprites are the weakest part of the Amiga specification (https://eab.abime.net/showthread.php?t=100356)

Foebane 09 January 2020 10:53

Sprites are the weakest part of the Amiga specification (DEBUNKED)
 
As far as I can see, with only eight 3-colour sprites and 4 15-colour ones, with unlimited height but only 16 pixels wide, you really can see why the consoles wipe the floor with the Amiga OCS/ECS sprites.

I heard that AGA sprites were as much as 64 pixels wide, but in only 1 colour. If anything, I've noticed, after watching hundreds of high-end Amiga AGA demos, that the main use of the sprites is for titles and captions over HAM8 animations, because that's the only way to display moving text on that mode, although I've seen rotating coloured cubes using sprites on OCS, which were quite impressive. But most of the time, the sprite overlays will be simply white and just moving across or up and down or even "shaking", some trend of the time, I suppose.

The Amiga is the natural successor to the Atari 8-bit family, and that system's sprites worked the exact same way, and even the C64 sprites were superior. I think it's most likely that Jay Miner never regarded hardware sprites that highly, which is probably why the Blitter was added.

Is there any great specific sprite demos? If my info is wrong, feel free to correct me. It's hard to tell the sprites in games vs bobs, etc.

Tigerskunk 09 January 2020 11:06

On OCS you can do some nice things with sprites, like those parallax backgrounds.
And when used with a multiplexer, you get a good amount of sprites on screen.
Very useful with for instance games where you need many small objects, like bullets.

And they don't have 1 colour, but 3 or 15 (but then you only have 4 sprites available)

I think you just need to view sprites on OCS (and maybe AGA as well) a bit differently. They are not the "bug game objects pusher". They are more in the vein of "little helpers" that you use here and there..

malko 09 January 2020 11:22

^ I may be wrong, but isn't it what ross has done on the Ziriax - Ultimate Edition's cracktro ?

roondar 09 January 2020 11:44

Sprites are deceptive on the Amiga. The hardware allows for very easy multiplexing (it's literally baked in the hardware), which means that you can get quite a few objects out of those 8 (or 4) sprite channels.

Which has resulted in there being quite a few Amiga games that show a pretty large amount of objects using the sprite hardware. Hybris uses sprites for all enemies, SWIV shows around 30 or so player bullets using just sprites, St. Dragon shows up to 20 player bullets with sprites. The rain effect in Agony was created using just 2 sprites. Etc.

There's also games that use the sprite hardware to create their background layers, which is a neat way of getting a Parallax background without needing Dual Playfield mode. If you push this, you can actually have a totally free-form background layer which doesn't care about sprite width (http://powerprograms.nl/amiga/spr-layer.html)*, though that is more of a trick than anything useful for games.

However, all of these uses require some thought. It's nowhere near as easy to push tons of objects with Amiga sprites as it is using say console hardware. If you can manage to think it through though, you can have some pretty impressive results for hardware that seemingly allows very little.

As for AGA: sprites are effectively identical to OCS sprites, except they can now be up to 64 pixels wide instead of 16. There are no additional colour limitations. This does change things a bit because that width is enough to cover quite a few pixels. AFAIK there's at least one AGA game that has a massive boss that is just sprites.

A good example of AGA sprites in use is Rygar AGA, which does a lot with sprites. IIRC all (or at least most) enemies are actually hardware sprites. As I understand it, Reshoot and Reshoot-R create all the enemy bullets with sprites - apparently up to 100 of them.

*) yeah, shameless plug alert :p

Foebane 09 January 2020 11:59

Thanks, Roondar, I'll check out those games. :)

ross 09 January 2020 12:01

Quote:

Originally Posted by malko (Post 1370434)
^ I may be wrong, but isn't it what ross has done on the Ziriax - Ultimate Edition's cracktro ?

Yep, all moving objects are sprites and are probably >300, with negligible CPU usage.
But I've also written other interesting effects using sprites (sine scroll, glenz vectors, parallax animated background..).

C64 sprites are not x-multiplexable, on Amiga yes. So in the end they are not that bad :)

sokolovic 09 January 2020 12:13

At least Amiga got hardware sprites, which wasn't the case on Atari ST, MacIntosh or PCs that were the direct rivals of the Amiga when it was released (mid 1985).
And don't forget, as said, that the sprite theorical limitation could be surpassed using multiplexing or Bobs which weren't limitated in size, colors or number but only by memory.
I don't know why the addition of Bobs shoudn't be considered as an advantage the Amiga had over other system at that time.

If sprite for you is a moving object on screen, then the Amiga got, in my opinion, a pretty decent system with all the tricks that could be used to outpass the strict 8-objects-moving-on-screen-at-the-same-time limitations (and many many games obviously don't stick to the 8 eight HW sprite to animate many objects on screen on the Amiga)

ross 09 January 2020 12:22

Some sprites on AGA:
https://www.pouet.net/prod.php?which=72407

:D

Daedalus 09 January 2020 12:26

Indeed, AGA sprites can be 3 or 15 colours deep in exactly the same was as OCS/ECS sprites, but up to 64 pixels wide. This means that they're wide enough for 5 sprites to cover an entire low-res screen, an effect that was often used for adding extra layers of parallax. Not sure where you got the 1-bit deep thing - even if you only use one colour in a sprite, it's still at least 3 colours deep. In addition, AGA sprites have more palette freedom, not being tied to pens 16-31 as their OCS/ECS counterparts are, which allows more direct, non-copper colours on screen, and allow sub-pixel positioning, which gives a supersmooth scrolling capability for a sprite background layer.

They do show their Atari 8-bit heritage in their implementation, but are far more advanced and accomplished than the old 8-bit sprites were. For a start, the old 8-bits didn't have a vertical position, meaning tricks were needed to move a sprite up and down. The Amiga fixes that issue, along with the issue of multicolour sprite palette handling and multiplexing.

Foebane 09 January 2020 18:21

Quote:

Originally Posted by ross (Post 1370453)

Yes, I've seen that demo, or at least I think I have. I mean, it seems to glitch on WinUAE, and there's no video to show how it should run. But it looks nice, all the same. I'll try it again now, to remind myself.

Quote:

Originally Posted by Daedalus (Post 1370456)
Indeed, AGA sprites can be 3 or 15 colours deep in exactly the same was as OCS/ECS sprites, but up to 64 pixels wide. This means that they're wide enough for 5 sprites to cover an entire low-res screen, an effect that was often used for adding extra layers of parallax.

Did the Shadow of the Beast games, namely 2 and 3, use sprites for this purpose? I always got the impression it did, which resulted in the smooth motion.

Quote:

Not sure where you got the 1-bit deep thing - even if you only use one colour in a sprite, it's still at least 3 colours deep.
Yes, I think they are 3 colours, as the overlays in the demos I mentioned usually have a single-pixel border around the white text, and probably have subtle anti-aliasing with a single colour as well.

Like this example:
https://www.youtube.com/watch?v=6gqoCCc7g7o
All the captions and little graphics over the HAM8 stuff is all sprites, I gather.

Quote:

In addition, AGA sprites have more palette freedom, not being tied to pens 16-31 as their OCS/ECS counterparts are, which allows more direct, non-copper colours on screen, and allow sub-pixel positioning, which gives a supersmooth scrolling capability for a sprite background layer.
Not to mention Super HiRes sprites, as I've seen at least one demo use for an end-credits scroller. And most demos, I've noticed, use sprites for text scrollers anyway.

Like this example:
https://www.youtube.com/watch?v=08AK0oHn_LA
The superhires sprite is used for the scroll on the left at 4:26, but it seems that the YouTube videos can't capture such a high resolution, or was emulated that way. I have the same issue in WinUAE, unless I use the SuperHires option. But it's still cool!

So how are the colours chosen in AGA sprites?

Quote:

They do show their Atari 8-bit heritage in their implementation, but are far more advanced and accomplished than the old 8-bit sprites were. For a start, the old 8-bits didn't have a vertical position, meaning tricks were needed to move a sprite up and down.
Oh GOD, tell me about it. Speaking as someone who mainly programmed in BASIC on the Atari 8-bit in the 1980s, I can personally attest to this difficulty, and it made sprite-based games in BASIC too slow for the most part.

Quote:

The Amiga fixes that issue, along with the issue of multicolour sprite palette handling and multiplexing.
GOOD! I'm starting to see the superiority of Amiga sprites now.

jotd 09 January 2020 20:50

even OCS sprites aren't so bad, when porting old arcade games, the characters are often 16-bit wide and have ... 3 colors. Examples: PacMan, Bagman, ... I'm exploring this area now.

Minuous 10 January 2020 05:17

Quote:

Originally Posted by Foebane (Post 1370527)
Did the Shadow of the Beast games, namely 2 and 3, use sprites for this purpose? I always got the impression it did, which resulted in the smooth motion.

Since they are OCS games, they wouldn't be using any AGA features.

Foebane 10 January 2020 09:01

Quote:

Originally Posted by Minuous (Post 1370597)
Since they are OCS games, they wouldn't be using any AGA features.

Oops. Brain fart on my part. :nuts

AmigaHope 10 January 2020 10:04

The anemic number of hardware sprites has always been my big lament about the Amiga. It's why the Sharp X68000 could throw imagery around like crazy in a way the Amiga never could have hoped to.

Of course that system came out 2 years later. Still, the Amiga was so far ahead in 1985 in almost all respects, it's odd that its hardware sprites were on par (or SLIGHTLY better with hacks) with the 1982 Commodore 64, or comparable to the 1983 Famicom. If they'd just made the sprites 16 color by default (or allowed 16 4-color sprites per scanline), or just quadrupled the numbers, it would have made a big difference. A small 32k sprite cache to avoid constantly DMAing the sprites would have worked wonders (maybe allow sprites to DMA from chip memory or from cache, selectable)

Daedalus 10 January 2020 10:07

Quote:

Originally Posted by Foebane (Post 1370527)
The superhires sprite is used for the scroll on the left at 4:26, but it seems that the YouTube videos can't capture such a high resolution, or was emulated that way. I have the same issue in WinUAE, unless I use the SuperHires option. But it's still cool!

Yeah, it's a nice effect alright. True, WinUAE will normally only render the high res pixels by default, you have to turn on super highres pixels to get all the detail and subtleties like quarter-pixel positioning.

Quote:

So how are the colours chosen in AGA sprites?
By default, they're the same as OCS/ECS sprites for compatibility with non-AGA software (pens 8-15 for 15-colour sprites, or split into 4 banks of 4 for each pair of 3-colour sprites, with the first pen of each sprite transparent). Under AGA however, you can switch that bank of 16 pens to another bank elsewhere, including beyond the colour range of the current screen (e.g. pens 0-31 for the bitmaps on a 32-colour screen, pens 32-47 for the sprites). Additionally, you can set a different bank of 16 colours for even and odd sprites, meaning effectively you can have a unique palette for all 8 3-colour sprites, and all independent of the bitmap graphics colours if you use 128 colours or fewer. All 15-colour sprites still have to share a single bank unfortunately, but at least that bank can still be anywhere in the 256 colour range.

Quote:

Oh GOD, tell me about it. Speaking as someone who mainly programmed in BASIC on the Atari 8-bit in the 1980s, I can personally attest to this difficulty, and it made sprite-based games in BASIC too slow for the most part.
Same here :) The standard Atari Basic was a little too slow for most things alright. I managed to build a decent Pong clone using sprites, but the diagonal movement of the ball jittered because it simply couldn't update the vertical position within the vertical blank interrupt.

Tigerskunk 10 January 2020 10:26

Quote:

Originally Posted by AmigaHope (Post 1370619)
The anemic number of hardware sprites has always been my big lament about the Amiga. It's why the Sharp X68000 could throw imagery around like crazy in a way the Amiga never could have hoped to. Of course that system came out 2 years later.

Two years later, and a lot more expensive.

Quote:

Originally Posted by AmigaHope (Post 1370619)
Still, the Amiga was so far ahead in 1985 in almost all respects, it's odd that its hardware sprites were on par (or SLIGHTLY better with hacks) with the 1982 Commodore 64, or comparable to the 1983 Famicom. If they'd just made the sprites 16 color by default (or allowed 16 4-color sprites per scanline), or just quadrupled the numbers, it would have made a big difference.

My only lament would be that the sprites are only 16px wide. 32px would have been awesome. The way it is now, you can only have 2 32px wide sprites with 16 colours, and that's too low, even when multiplexed.

With 4 per scanline, you can go a long way in most "normal" games.

Foebane 10 January 2020 11:02

Quote:

Originally Posted by Daedalus (Post 1370620)
The standard Atari Basic was a little too slow for most things alright. I managed to build a decent Pong clone using sprites, but the diagonal movement of the ball jittered because it simply couldn't update the vertical position within the vertical blank interrupt.

In the last several years, I investigated how the C64 managed sprite movement, and I was positively JEALOUS to find out how much simpler and more versatile it was to program a sprite and move it around on the C64 screen! In BASIC! No wonder it was so popular.

The C64 may have been limited in size (24x21 pixels hires 1-colour, 12x21 pixels lores 3-colour) but they were certainly more generous with the 3 bytes per scanline vs the Atari's 1 byte. I also wondered what the 21 pixel significance was, and that was so each of the 8 sprites could fit in exactly 64 bytes of memory. Nice and elegant, I thought.

sokolovic 10 January 2020 11:23

Here we go again with pointless comparison with the X68000 that was at least 5 time more expensive than the Amiga (3000$ VS 700$ for the A500. Even the A1000 in 1985 was released 2 years before at a price that was twice inferior : 1 300$).

I just don't understand why this hudge difference seems to be completely obliterated by people constantly comparing the 2 systems. I don't know for other system but is there also people comparing the first Macintosh or the Macintosh plus with the X68000 ? Because the price range for the Mac is much more closer to the X68000. And the Atari ST ? Does people compare this machine and it inexistent hardware sprite abilities with the X68000 ?

For a system that was 5 time cheaper, keep being compared to the beast that was the X68000 maybe prove that the Amiga wasn't such a big shitty machine like we can read here and there. :D

Foebane 10 January 2020 11:31

Agreed, Sokolovic.

EITHER these hardware oficionados just love to treat the X68000 as the Holy Grail of gaming hardware and compare it with everything else, despite it's lack of availability outside of Japan,

OR we had a lot of Western gamers back in the day making lots of frequent trips back and forth to Japan.

I think the former is much, much, much more likely.

roondar 10 January 2020 11:47

Quote:

Originally Posted by jotd (Post 1370550)
even OCS sprites aren't so bad, when porting old arcade games, the characters are often 16-bit wide and have ... 3 colors. Examples: PacMan, Bagman, ... I'm exploring this area now.

OCS sprites are quite capable when used well. They'd rock for older stuff for sure. Hybris could be seen as an inspiration here, every enemy is a hardware sprite.
Quote:

Originally Posted by AmigaHope (Post 1370619)
Still, the Amiga was so far ahead in 1985 in almost all respects, it's odd that its hardware sprites were on par (or SLIGHTLY better with hacks) with the 1982 Commodore 64, or comparable to the 1983 Famicom.

I feel some defense of the Amiga's sprites is in order, as I love them regardless of their many faults. So... Here goes :D

Amiga hardware sprites, for all their faults, are actually significantly better than either Master System or NES sprites in many ways. They cover more pixels horizontally (up to 128 vs 64) and can display more pixels without tricks (up to about 32768 vs 8192). They can also be horizontally multiplexed, which is something that none of the systems you name can do.

Similarly, Amiga sprites can actually cover way more pixels than the C64 sprites can - if no tricks are allowed. Depending on sprites being expanded or not, the Amiga can cover anywhere from 2x to 8x the number of pixels with sprites that the C64 can.

That said, if tricks are allowed C64 sprites do indeed become much better than Amiga sprites, certainly for the purpose of displaying game objects. However, don't forget the C64 relies almost exclusively on sprites for objects in games, while the Amiga does not. Sprites and the Blitter are meant to work together to make graphics, not just one or the other. With the Amiga, always consider all parts of the puzzle ;)

Also... The C64 was pretty much the "outstanding outlier" in sprite abilities. No other 8 bit system of the early 1980's comes even close to what the C64 can do with sprites when well programmed. If it is pushed to extremes, it can actually pump out more sprite pixels in a frame than either the SNES or Mega Drive can without relying on trickery :D

(though I should mention that doing so would not be useful in the slightest for games :laughing)
Quote:

If they'd just made the sprites 16 color by default (or allowed 16 4-color sprites per scanline), or just quadrupled the numbers, it would have made a big difference. A small 32k sprite cache to avoid constantly DMAing the sprites would have worked wonders (maybe allow sprites to DMA from chip memory or from cache, selectable)
Better sprites would have been very nice (and I'd love to have seen some of the stuff you mention, or options such as size doubling, etc), but they do not exist in a vacuum :agree

Edit:
Quote:

Originally Posted by sokolovic (Post 1370637)
I just don't understand why this hudge difference seems to be completely obliterated by people constantly comparing the 2 systems.
...
For a system that was 5 time cheaper, keep being compared to the beast that was the X68000 maybe prove that the Amiga wasn't such a big shitty machine like we can read here and there. :D

+1 :great


All times are GMT +2. The time now is 23:49.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.05157 seconds with 11 queries