B board · sheet 3/6 · manual page 34

The object data control sheet

Twenty-seven chips, the busiest sheet on the board. It holds the two line stores, and it works out which of a sprite's sixteen rows the beam has actually reached.

This sheet is part ofHow sprites work

The subsystem followed end to end, across every sheet that builds it.

What this sheet is for

Two jobs share this drawing. The first is storage: 3H/4H and 3J/4J are two small memories, each holding the up-to-24 sprites chosen for one scanline. The '157s at 1H, 2H, 1J and 2J switch each store between being filled and being read back, and hold the write line off during playback so a sprite being drawn cannot be scribbled over halfway.

5H and 5J read back whichever store was filled last and feed it into the drawing machinery.

Which row of the sprite are we on?

The second job is arithmetic, and it is the part worth slowing down for. Sheet 1/6 already decided that a sprite touches this line. Now the engine needs to know which of that sprite's sixteen rows to fetch.

That is the same subtraction again, done properly this time. 5F latches the sprite's Y position; 5C and 4C freeze the scanline number in inverted form; 4D and 5D turn it into a negative so the next stage can subtract; 4E and 5E produce the answer. The low four bits are the row number. The top four say whether the beam really is inside this sprite's height at all, which 2E confirms.

6D reverses the row order when the sprite is flipped vertically, so the same artwork draws either way up.

Unpacking the rest of the record

A sprite's four bytes arrive one after another and each needs catching at the right instant. 3A, a '139, splits the four byte-slots apart in time and tells each latch which moment belongs to it.

3F and 3E catch the picture number and hold it steady while the graphics ROMs are read. 4F unpacks the attribute byte into the rest of the picture number, the colour, the mirror flags and which side of the screen the sprite belongs on. 2F keeps the colour choice in step with the pixels it belongs to, and 1F distributes the mirror flags to the three different places that need them.

The resulting format matches MAME's reading of the sprite record exactly, which is a useful independent check on a sheet this dense.

Every chip on this sheet

Click any of them to open the schematic with that chip selected in both panels.

← open the schematic for this sheet