L0 ROM



The L0 ROM is a 64KiB (sometimes 128KiB with A16 tied to ground) ROM chip found in every NeoGeo systems as a stand alone chip or integrated in another chip, which contains byte values used by to shrink sprites vertically.

The dump is called 000-lo.lo in system ROM sets.

=Hash=


 * CRC32: 5A86CFF2
 * SHA-1: 5992277DEBADEB64D1C1C64B0A92D9293EAF7E4A

=Data format=

The data is made of 256 tables of 256 bytes, each table corresponding to a vertical shrinking value for sprites.

For the first 256 lines (top half of a full sprite), the index in the table is the line number of the sprite currently being drawn (scanline - Y position).

Each byte entry in the table is used as 2 nibbles:
 * The upper nibble is the tile number index to read in the tilemap in VRAM SCB1 (0 to 15).
 * The lower nibble is the line number of that tile to fetch in the C ROMs.

For the last 256 lines (bottom half of a full sprite), the index in the table is complemented: the table is read backwards.


 * The upper nibble is the tile number index XOR $1F to read in the tilemap in VRAM SCB1 (16 to 31).
 * The lower nibble is the line number XOR $F of that tile to fetch in the C ROMs.

Example of GPU processing


(Maybe place this part in the LSPC page ?)

Sprite with Y zoom value = $1B and tile height = 2 (32 pixels).

Datasheet
There are 2 stand alone chip versions used depending on the NeoGeo system, the SOP32 TC531001 and the DIP28 TC531000.

Official TC531001 datasheet: []

Official TC531000 datasheet: []