VRAM
VRAM stand for Video RAM.
The NeoGeo has 68KiB (physically 64KiB + 32KiB) of VRAM organised as 16 bits words, which is used to store sprite attributes and the map for the fix layer. Contrary to other systems, the VRAM here does not contain actual graphics.
It isn't mapped in the 68k's address space. The only way to read and write to it is by using 3 Memory mapped registers. Every address points to a word, not a byte.
- VRAM_ADDR ($3C0000) sets the VRAM address
- VRAM_RW ($3C0002) is the data to read or write
- VRAM_MOD ($3C0004) is the signed value added to the VRAM address after a write
Memory map
Start | End | Description |
$0000 | $6FFF | SCB1 |
$7000 | $7FFF | Fix map |
$8000 | $81FF | SCB2 |
$8200 | $8400 | SCB3 |
$8400 | $8600 | SCB4 |
$8600 | ? | Inside GPU, display lists ? |
VRAM can be modified at any time, even during active display.