Software Sprites With a Tile Based Display

Earlier today, I was talking about the Sega Mega Drive and how it sometimes used software sprites (but mostly its predecessor, the Sega Master System). This made me think of the technique for a while and how I haven’t seen it detailed in any length for a while. It was not that common, but still useful to make games that would defeat the sprite-limit in the hardware, or if the system had no sprite hardware at all in a given graphical mode.

First, let’s define a sprite. It’s going to be a simple one, a 8×8 bullet. Let’s make it that it only has 2 colors, meaning it only needs 1-bit per pixel (we’ll get to why this example is important later):

00111100
01000010
10011001
10100101
10100101 
10011001
01000010
00111100

Let’s define a tiled screen made of several 8×8 tiles. For clarity sake, let’s just make a 4×4 one and name them using hexadecimal letters:

    0   1   2   3
0 |0x0|0x1|0x2|0x3|
1 |0x4|0x5|0x6|0x7|
2 |0x8|0x9|0xA|0xB|
3 |0xC|0xD|0xE|0xF|

Continue reading