MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / dmaGIF

Function dmaGIF

pcsx2/Gif.cpp:465–486  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

463}
464
465void dmaGIF()
466{
467 // DevCon.Warning("dmaGIFstart chcr = %lx, madr = %lx, qwc = %lx\n tadr = %lx, asr0 = %lx, asr1 = %lx", gifch.chcr._u32, gifch.madr, gifch.qwc, gifch.tadr, gifch.asr0, gifch.asr1);
468
469 gif.gspath3done = false; // For some reason this doesn't clear? So when the system starts the thread, we will clear it :)
470 CPU_SET_DMASTALL(DMAC_GIF, false);
471 if (gifch.chcr.MOD == NORMAL_MODE)
472 { // Else it really is a normal transfer and we want to quit, else it gets confused with chains
473 gif.gspath3done = true;
474 }
475
476 if (gifch.chcr.MOD == CHAIN_MODE && gifch.qwc > 0)
477 {
478 //DevCon.Warning(L"GIF QWC on Chain " + gifch.chcr.desc());
479 if ((gifch.chcr.tag().ID == TAG_REFE) || (gifch.chcr.tag().ID == TAG_END) || (gifch.chcr.tag().IRQ && gifch.chcr.TIE))
480 {
481 gif.gspath3done = true;
482 }
483 }
484
485 gifInterrupt();
486}
487
488static u32 QWCinGIFMFIFO(u32 DrainADDR)
489{

Callers

nothing calls this directly

Calls 2

CPU_SET_DMASTALLFunction · 0.85
gifInterruptFunction · 0.85

Tested by

no test coverage detected