B board · sheet 1/6 · manual page 32

The object RAM sheet

Capcom lettered this one 96 OBJECTS DATA RAM, which tells you the sprite limit in the engineers' own handwriting. It is where the object list arrives and where each object is first asked the only question that matters.

This sheet is part ofHow sprites work

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

What this sheet is for

This sheet does two jobs. It gets the object list across from the A board, and it performs the first test on every object it finds.

The list is not copied to this board by the CPU. Instead 6C raises a bus request, waits for the grant, and then the counters on sheet 2/6 drive addresses out through 1C and 1D onto the A board's own address bus. Data comes back through 1E. 6A hands the bus back the moment all ninety-six objects have been read.

1A and 2A hold this board's own copy of the list, so it can be re-read all through the frame without disturbing the CPU again. That handshake is covered properly on the bus-sharing page.

FETCHING THE OBJECT LIST FROM THE OTHER BOARD6C / 6Aask for the bus1C / 1Daddress the list1Eread it back1A / 2Akeep a local copy

The sprite table never leaves the A board's memory. This board asks the main CPU to step aside, addresses that memory directly, and reads the list out in place.

Is this object on this line?

The rest of the sheet answers one question per object, per scanline: does this sprite touch the line about to be drawn?

It is done as a subtraction. Every sprite is sixteen pixels tall, so the sprite covers this line when the current scanline minus the sprite's Y position lands between 0 and 15. 2C and 3C are the '283 adders that work it out, and 2E, a '20 NAND, turns the result into a single yes-or-no signal: /MATCH.

Two adjustments happen before the subtraction. 5A and 4A exclusive-OR the scanline count with the flip signal, which is how a cocktail cabinet gets an upside-down screen for the price of two chips. And 2B and 3B add a fixed vertical offset.

That offset is a small pleasure to have found. MAME draws every sprite at sy + 6, a constant that has sat in the driver for years. On the board that constant is physical: it is what these two adders add.

Objects that fail the test are dropped and never thought about again. Those that pass are handed on through 2D and 3D to whichever line store is currently being filled.

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