[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

This register lets you define how objects will pass in front of each other
or hide behind each other. Normally, playfield 1 appears in front of
playfield 2. The PF2PRI bit reverses this relationship, making playfield 2
more important. You control the video priorities by using the bits in
BPLCON2 (for "bitplane control register number 2") as shown in Table
7-1.


                  Table 7-1: Bits in BPLCON2

             Bit
            Number         Name           Function
            ------         ----           --------
             15-7                      Not used (keep at 0)

                6     PF2PRI           Playfield 2 priority

              5-3     PF2P2 - PF2P0    Playfield 2 placement with
                                       respect to the sprites

              2-0     PF1P2 - PF1P0    Playfield 1 placement with
                                       respect to the sprites


The binary values that you give to bits PF1P2-PF1P0 determine where
playfield 1 occurs in the priority chain as shown in Table 7-2. This
matches the description given in the previous section.

   Be careful:
   -----------
   PF2P2 - PF2P0, bits 5-3, are the priority bits for normal (non-dual)
   playfields.


  Table 7-2: Priority of Playfields Based on Values of Bits PF1P2-PF1P0

             Value                 Placement
             -----                 ---------
                    (from most important to least important)

              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


In this table, PF1 stands for playfield 1, and SP01 stands for the
 group of sprites  numbered 0 and 1. SP23 stands for sprites 2 and 3 as a
group; SP45 stands for sprites 4 and 5 as a group; and SP67 stands for
sprites 6 and 7 as a group.

Bits PF2P2-PF2P0 let you position playfield 2 among the sprite priorities
in exactly the same way. However, it is the PF2PRI bit that determines
which of the two playfields appears in front of the other on the screen.
Here is a sample of possible BPLCON2 register contents that would create
something a little unusual:

              BITS    15-7    PF2PRI  PF2P2-0 PF1P2-0
              VALUE     0s      1       010     000

This will result in a sprite/playfield priority placement of:

                PF1  SP01  SP23  PF2  SP45  SP67

In other words, where objects pass across each other, playfield 1 is in
front of sprite 0 or 1; and sprites 0 through 3 are in front of playfield
2. However, playfield 2 is in front of playfield 1 in any area where they
overlap and where playfield 2 is not blocked by sprites 0 through 3.

Figure 7-3 shows one use of sprite/playfield priority. The single sprite
object shown on the diagram is sprite 0. The sprite can "fly" across
playfield 2, but when it crosses playfield 1 the sprite disappears behind
that playfield. The result is an unusual video effect that causes the
object to disappear when it crosses an invisible boundary on the screen.


    +---------------------+    +---------------------+
    |#####################|    |                     |
    |#####################|    |                     |
    |#####################|    |      ·········      |
    |#####################|    |      ·········      |
    |####                 |    |·····················|         __
    |####                 |    |·····················|        /  \
    |####                 |    |·····················|     __/____\__
    |####                 |    |·····················|    |          |
    |####                 |    |·····················|    |__________|
    |####                 |    |·····················|       \    /
    |####                 |    |·····················|        \__/
    |####                 |    |·····················|
    |#####################|    |      ·········      |      Sprite 0
    |#####################|    |      ·········      |
    |#####################|    |                     |
    |#####################|    |                     |
    +---------------------+    +---------------------+

          Playfield 1                Playfield 2


    +---------------------+
    |#####################|
    |#####################|
    |######·········######|
    |######·-·-·-·-·######|- - - - -
    |···|·__··············|
    |····/  \·············|    When everything is displayed together.
    |···|____\__··········|    sprite 0 is more important than playfield 2
    |····       |·········|    but less important than playfield 1.
    |···|____ __|·········|    So even though you can't see the boundary,
    |····    /············|    the sprite disappears "behind" the
    |···|\__/·············|    invisible PF1 boundary.
    |·····················|
    |######·-·-·-·-·######|- - - - -
    |######·········######|
    |#####################|
    |#####################|
    +---------------------+


                  Figure 7-3: Sprite/Playfield Priority


[Back to Amiga Developer Docs]