[comp.sys.amiga.tech] Amiga Sprites question

a464@mindlink.UUCP (Bruce Dawson) (01/02/90)

     Chapter seven of my hardware manual discusses 'system control hardware'.
In there it discusses sprite priorities.  The eight sprites are broken up into
four sets of two.  The priority control register can be set though that each
playfield (or the playfield if you aren't using dual playfield mode) can be
either in front of all eight, in front of six, in front of four, in front of
two, or behind all.  The sprites are always in the same order.

.Bruce.

gbbrooks@sybil.cs.Buffalo.EDU (G. Brandon Brooks) (01/03/90)

	I've been fiddling around with Amiga's sprites recently and it
doesn't seem possible to control the depth of a sprite. When I had an Atari
800 way back in the 80's, this was possible to do - and very easy. I must
be missing the command(s) to do this on my Amiga.
	What I am asking is how to have a sprite go BEHIND certain bitplanes
or certain colors and IN FRONT of other colors or bitplanes.
	Specifically, I want to be able to write text over my sprites rather
than have the sprites obscure my text.
		-Brandon!

Jeff.Petkau@weyr.FIDONET.ORG (Jeff Petkau) (01/03/90)

> I've been fiddling around with the Amiga's sprites recently and it
> doesn't seem possible to control the depth of a sprite.  When I had
 
In the custom structure (hardware/custom.h) you will find the BPLCON2 register.  The bits in here are defined as follows (from p.200 of the hardware manual):
 
Bit No.   Name    Function
15-7              Not used (keep at 0)
6         PF2PRI  Playfield 2 priority relative to playfield 1
5-3       PF2Px   Playfield 2 priority with respect to sprites
2-0       PF1Px   Playfield 1 priority with respect to sprites
 
Priority of playfields based on values in bits PF1P2-PF1P0:
 
Value              Placement (from most important to least)
000           PF1    SP01    SP23   SP45   SP67
001           SP01   PF1     SP23   SP45   SP67
010           SP01   SP23    PF1    SP45   SP67
011           SP01   SP23    SP45   PF1    SP67
100           SP01   SP23    SP45   SP67   PF1
 
Where PF1 stands for playfield 1, SP01 stands for sprites 0 and 1, 
SP23 stands for sprites 2 and 3, etc.  The other bits (6-3) are only important in dual-playfield mode.
 
Now that I've described the register in struct Custom, DON'T USE IT.  There is a ubyte in the ViewPort structure (vport->SpritePriorities) which has exactly the same meaning.  So to fool with sprite priorities,change this byte, then do a MakeScreen() and RethinkDisplay() and life will become wonderful.

--  
Jeff Petkau - via FidoNet node 1:140/22
UUCP: alberta!dvinci!weyr!Jeff.Petkau
Internet: Jeff.Petkau@weyr.FIDONET.ORG
Standard Disclaimers Apply...