EarthBound/VRAM DMA Circular Queue

From Data Crystal
Jump to navigation Jump to search

This is a sub-page of EarthBound.

VRAM DMA Circular Queue
Game EarthBound
Start Address 0x7E0400
End Address 0x7E04FF
# of Entries 32
Entry Length 8 bytes (0x08)
Total Length 256 bytes (0x100)
Back to the RAM map

A circular queue storing queued-up VRAM DMA transfers to be made at the next VBLANK period.

Format

Transfer Style

Offset into the VRAM DMA Transfer Style Table to get miscellaneous parameters for a DMA transfer.

Size

Transfer size in bytes.

Memory Address

CPU memory address (long pointer) for the "A" side of the DMA transfer.

VRAM Address

VRAM word address for the "B" side of the DMA transfer.

Auxiliary Data

  • $7E0000 (8-bit): Entries end offset. Next queue position after the last entry. Also represents the position to write to on adding new entries.
  • $7E0001 (8-bit): Entries start offset. Position of the start of the first entry.

Usage

Entries are added to the queue by the VRAM DMA Transfer Routine (unless that routine initiates a DMA transfer directly). If the routine finds that the queue is full, it simply loops until it is no longer full.

Entries are removed by the VBLANK Interrupt Routine where the encoded DMA transfers are initiated.