Mode 72 Sprite modes

From Uzebox Wiki
Jump to navigation Jump to search

Mode 72 supports several sprite modes with different features.

Usually each individual sprite can have its position (X:Y on screen) source (ROM / RAM address), height and three colors specified, and whether it should be X mirrored. Sprite configurations vary in the width of the sprites, and how many of them may be used of which how many may display on the same scanline.

In most sprite modes, there are two types of sprites:

  • Normal sprites. These are usually 3 color + transparency sprites of a fixed width depending on the chosen sprite mode. Up to 8 of these may show on a scanline with the lowest (0) index being the lowest priority (displaying below the rest). Each such sprite slot can have any number of Y ordered sprites as a chained list with at least one blank line between two sprites.
  • Bullet sprites. These are 1 - 4 pixels wide single colored blocks. Each bullet slot can have any number of Y ordered sprites as a straight list, and a new sprite can render immediately in the next line below the previous sprite.

By default only sprite mode 15 is present which is a dummy mode with no sprites. You can control this by setting M72_SPRITE_MODES (a bitmask selecting the sprite modes you need). You can not turn off Sprite mode 15.

Sprite mode 0

  • 8 slots of 8 pixels wide sprites.
  • 1, 3, 5 or 6 bullet slots (8, 7, 6 or 5 normal sprites respectively).
  • Sprites can be ROM or RAM sourced.

Sprite mode 1

  • 5 slots of 16 pixels wide sprites.
  • 1, 4 or 7 bullet slots (5, 4 or 3 normal sprites respectively).
  • Sprites can be ROM or RAM sourced.

Sprite mode 2

  • 6 slots of 12 pixels wide sprites.
  • 2, 4 or 6 bullet slots (6, 5 or 4 normal sprites respectively).
  • Sprites can be ROM or RAM sourced.

This mode has some similarity with the Commodore 64's Multicolor mode, it might be a good choice for a C64 port.

Sprite mode 3

  • 3 slots of 32 pixels wide sprites (as split pairs making 6 sprites total).
  • 2 bullet slots.
  • Only RAM source is supported.

This mode has 96 pixels horizontal coverage, might be useful for displaying SD card sourced content.

Sprite mode 4

  • One 120 pixels wide sprite split up to 12 and 16 pixels wide sprites.
  • No bullets.
  • Only RAM source is supported.

The sprite is split into two 60 pixels wide halves, the second half is being mirrored. No explicit mirroring is supported (the mirroring configuration is fixed). This mode has the highest horizontal coverage, might be useful for displaying SD card sourced content. The mirroring setup may be used to display large symmetric images.

Sprite mode 5

  • 8 slots of 8 pixels wide sprites.
  • 1, 3, 5 or 6 bullet slots (8, 7, 6 or 5 normal sprites respectively).
  • Sprites can be ROM sourced (no RAM sprites).

This mode has bullets appearing above the sprites, otherwise it is similar to Sprite mode 0.