- What precautions should I use when doing GDMA on a GBC ?
- GDMA can only reliably be performed in V-blank while the screen is on. While the screen
is off it can be performed at any time.
- During the execution of GDMA the CPU is devoted to DMA only and no other processing can
take place.
- If you plan to transfer more than ~1600 bytes (~100 tiles) in one V-blank while the
screen is on then you probably will need to use double-speed mode. GDMA is slightly faster
in double-speed mode and will allow transfers up to 2048 bytes in this mode. If your
V-blank interrupt code is exceptionally long then large GDMA transfers are not feasible if
they overrun the end of V-blank.
- Make sure your source & destination addresses are 16 byte aligned (same as HDMA) and
that your transfer length is correct. (i.e. HDMA5 [$ff55]: $00 = 16 bytes, $01 = 32 bytes,
.... , $7f = 2048 bytes)