VRAM: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
m (1 revision)
mNo edit summary
Line 1: Line 1:
VRAM stand for Video RAM.
VRAM stand for Video RAM.


The NeoGeo has 128kByte (64k + *k in [[LSPC2-A2]] ?) of VRAM (64kWords), which is used to store [[Sprites|sprite]] attributes and the map for the [[fix layer]].
[[File:Aes_cxk5814.jpg|thumb|One of two CXK5814 2KiB RAM chips used for the upper zone of the VRAM ($8000~$87FF) on a AES system]]
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]].
The NeoGeo has 68KiB (physically 64KiB + 32KiB) of VRAM organised as 16 bits words, which is used to store [[Sprites|sprite]] attributes and the map for the [[fix layer]]. Contrary to other systems, the VRAM here '''does not contain actual graphics'''.
Data in VRAM is always seen as 16 bits words. Every address points to a word, not a byte.


*$3C0000 (VRAM_ADDR) sets the VRAM address
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.
*$3C0002 (VRAM_RW) is the data to read or write
 
*$3C0004 (VRAM_MOD) is the signed value added to the VRAM address after a write
* 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 ==
== Memory map ==


*$0000 to $6FFF : [[Sprites#SCB1|SCB1]]
{| class="regdef"
*$7000 to $7FFF : [[Fix layer|Fix map]]
|'''Start'''
*$8000 to $81FF : [[Sprites#SCB2|SCB2]]
|'''End'''
*$8200 to $8400 : [[Sprites#SCB3|SCB3]]
|'''Description'''
*$8400 to $8600 : [[Sprites#SCB4|SCB4]]
|-
*$8600 to $FFFF : used by GPU, sprite display lists
|$0000
|$6FFF
|[[Sprites#SCB1|SCB1]]
|-
|$7000
|$7FFF
|[[Fix layer|Fix map]]
|-
|$8000
|$81FF
|[[Sprites#SCB2|SCB2]]
|-
|$8200
|$8400
|[[Sprites#SCB3|SCB3]]
|-
|$8400
|$8600
|[[Sprites#SCB4|SCB4]]
|-
|$8600
|?
|Inside GPU, display lists ?
|}


VRAM can be modified at any time, even during active display.
VRAM can be modified at any time, even during active display.

Revision as of 11:05, 12 February 2011

VRAM stand for Video RAM.

File:Aes cxk5814.jpg
One of two CXK5814 2KiB RAM chips used for the upper zone of the VRAM ($8000~$87FF) on a AES system

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.

Timing considerations