Actions

SCHG

VDP Documentation/General/Direct Memory Access

From Sonic Retro

Revision as of 18:32, 13 September 2010 by GerbilSoft (talk | contribs) (DMA Quirks)

Template:SCHG VDP Direct Memory Access, or DMA, allows the VDP to copy data from the main 68000 memory to VRAM directly without interference from the CPU. It also provides VRAM-to-VRAM copy and VRAM fill operations that can take place while the CPU is performing other tasks.

DMA Quirks

A well-known quirk with DMA memory-to-VRAM copy occurs when the source length is set to 0. The DMA functionality in the VDP decrements the source length before checking if it's hit zero, so setting the source length to 0 results in a transfer of 65,536 words instead of a null transfer. Since VRAM is only 32,768 words, this will result in a destination address counter overflow, which will definitely produce the wrong results.

Memory-to-CRAM and Memory-to-VSRAM copies are also affected, but the transfers are automatically stopped when the destination address counter reaches 0x80 or 0x50, respectively.