SCHG:VDP Documentation/General/Direct Memory Access
From Sonic Retro
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.