What are all of the DMA modes & what are they used for ?
Sprite DMA – This is the original DMA that is available on all models of GB. It is used to do a fast copy of sprite attribute data to Object (sprite) Attribute Memory (OAM) located at $fe00-$fe9f. Sprite attribute data includes sprite X & Y coordinates, tile number, palette number, horizontal flip, vertical flip, and sprite priority. No tile graphics are transferred using this method of DMA. This method of DMA usually is only performed in high RAM ($ff80-$fffe) due to its limitations. HDMA – Otherwise known as Horizontal Blank DMA. It is only available on the GBC. Similar to GDMA, this method of DMA is useful for copying tile graphics or tile maps to video RAM. There are many restrictions to using HDMA listed here but it can be powerful if used carefully. Unlike the other two methods of DMA, this one is most practical for allowing other processing to take place while HDMA is occurring. More specifically, the CPU is used completely during H-blank to process HDMA but at all other times u