EarthBound/VRAM DMA Circular Queue: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Create page)
 
m (Xkeeper moved page EarthBound:VRAM DMA Circular Queue to EarthBound/VRAM DMA Circular Queue: normalize subpages and titles)
 
(One intermediate revision by one other user not shown)
Line 41: Line 41:
==Auxiliary Data<span class="anchor" id="AuxiliaryData"></span>==
==Auxiliary Data<span class="anchor" id="AuxiliaryData"></span>==


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


==Usage==
==Usage==


{{stub}}
Entries are added to the queue by the [[EarthBound:ASM:VRAM_DMA_Transfer_Routines#$C0865F|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 [[EarthBound:ASM:VBLANK_Interrupt_Routine|VBLANK Interrupt Routine]] where the encoded DMA transfers are initiated.
 
[[Category:EarthBound|VRAM DMA Circular Queue]]
[[Category:EarthBound|VRAM DMA Circular Queue]]

Latest revision as of 02:41, 24 January 2024

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.