Thread: Amiga Vs ST
View Single Post
Old 31 July 2009, 01:12   #235
frank_b
Registered User
 
Join Date: Jun 2008
Location: Boston USA
Posts: 325
Quote:
Originally Posted by Toffee View Post
Filled/wireframe 3D games should always run faster on Amiga over ST and yes that includes Elite 2!


I don't know a lot about the STE blitter but the Amiga Blitter has 4 DMA channels which can be combined in 256 different ways, it's pipelined, has 2 barrel shifters, has hardware line drawing and polygon filling. How does the STE Blitter compare to this as I know it was a lot newer than the Amiga 1985 Blitter?
The Atari blitter lacks hardware line draw and area fill. It's a 2 src blitter where one of the sources is also the destination. There are 16 ways of combining source and destination. As the destination is also a source this includes modes like ~dst & ~src. Sadly this means that masking sprites takes two passes.

Like the amiga it has signed src y/dst y modulos. Unlike the Amiga it has srcx and dstx signed modulos. Not exactly a feature but something required for interleaved ST video format.

It has 16 words of on chip RAM (Halftone) which can be used to apply a pattern for every word on a line. They can be anded with the the src data. This can also be used as an indirect addressing mode. The four bits shifted out of the src word act as a look up onto this data. There are three end masks (first/middle/end) which affect which bits are written to on a line. The Amiga IIRC masks off bits from the source (A I think..). Combine both and it's trivial to hflip rasters or scale them by a fixed number of pixels. Quite nice for art packages. Very fast magnify mode.

Unlike the Amiga it has access to the whole 24 bit range. On an STE this could be 4 meg of (chip )RAM , chip registers and ROM. On a Falcon that's 14 meg of chip RAM. Blits can be much bigger than on the Amiga. X/Y count max out at 65536. There is a barrel shifter. Shifting is completely free.

It runs 1 to 3 bus cycles (4 cycles) depending on whether the operation is R/M/W. Ie an and will take 12 cycles, a copy 8 and a clear 4. This is less efficient than the Amiga but the ST blitter always has 160,000 cycles available to it per VBL in hog/nasty mode. This means it's faster by far at clearing/filling memory than the Amiga (even with DMA switched off on the Amiga) and due to bitplane contention not much slower at copying. Masking is obviously slower.

There is an optimisation where the last line of the src need not be read which can speed some blits up. If if the src data is aligned to a 16 pixel boundery.

Combined with the end masks you can do a bit aligned copy where it costs 12 cycles for the start /end (depending on which bits you want to preserve) and 8 for the middle word masks. The Amiga has to use the C channel for this if you want to protect bits in the destination. 6 cycles on the Amiga not including contention if my memory serves. See the HRM for details in case my memory is fuzzy.

I think for a truly generic pixel bitblit (dest = src with bits on the first/last word needing to be preserved) they're probably on par with each other. Assuming bits on the dest need to be preserved.

The ST one is pretty much a straight implementation of raster op with some extensions.

The amiga is quite a bit faster at masking but not 3x faster. More like 1.5 on a five/six bitplane screen due to contention. It takes 24 cycles to mask on the ST.

It doesn't have the nice collision detection feature the Amiga one has. On the plus side sceners worked out how to gourad shade with it on the Falcon

Like the Amiga it will flat out kill the 68k at bit aligned operations. It's fast enough to throw around a 5 plane screen at (320*200) in a VBL. IE 40,000 bytes per frame with an arbitrary shift. Try that on an 8 mhz 68k

It does what it does very well. Much better than the 68k.

Last edited by frank_b; 31 July 2009 at 20:56.
frank_b is offline  
 
Page generated in 0.05566 seconds with 9 queries