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|