You seem to be using an older version of Internet Explorer. This site requires Internet Explorer 8 or higher. Update your browser here today to fully enjoy all the marvels of this site.
There is little time, I was looking for a "swi LZ77".
I found two commands: the 0x11 and 0x12 swi. Someone could enlighten me on the difference between these two commands ?
For the swi 0xB and 0xC, I've the same problem.
The DMA (Direct Memory Acess) does work on hardware base and therefore I reckon that you cannot determine exactly when your data block will be at its designated destination. However it is fast, generally said: DMA > SWI(Bios) > IRAM > ROM executed code.(Speed wise)
The GBATEK says that the CPU is paused during DMA transfers so I suppose the data transfer will be finished right when the CPU remumes execution and therefore there is no need to care about timing problems.
As far as I can remember the DMA ist a consistant process (Which makes it perfect for things like the palette buffer that exists in nearly every pokemon game on the GBA), and taking that into account you will run into timing issues, which means you should use memcopy or cpuset as its called for single-time operations.