Je debute en programmation sur GBA et je recherche un peu d'aide.
Je ne comprends pas bien comment fonctionne les acces directs à la memoire (DMA)
je code en C/C++
ces quelques lignes de codes ne font rien :
#define REG_DMA3SAD *(unsigned long*)0x40000D4
#define REG_DMA3DAD *(unsigned long*)0x40000D8
#define REG_DMA3CNT *(unsigned long*)0x40000DC
...
REG_DMA3SAD=(unsigned long)SplashData;
REG_DMA3DAD=(unsigned long)VRAM;
REG_DMA3CNT=9600|DMA_32NOW;
...
alors qu'elles sont sensées afficher une image (SplashData) à l'ecran
Par contre si je modifie mon code en
...
while (1) {
REG_DMA3SAD=(unsigned long)SplashData;
REG_DMA3DAD=(unsigned long)VRAM;
REG_DMA3CNT=9600|DMA_32NOW;
}
...
c'est à dire la meme chose dans une boucle, alors l'image s'affiche...
Donc questions:
Les acces direct à la memoires sont-ils bien geres par les emulateurs? (parceque j'execute mes bin sur emul seulement)(j'ai pas de GBA)
qu'y a-t'il à faire pour que cela fonctionne?
Merci d'avance!