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

Function SPRFROMinterrupt

pcsx2/SPR.cpp:298–326  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

296}
297
298void SPRFROMinterrupt()
299{
300
301 if (!spr0finished || spr0ch.qwc > 0)
302 {
303 _dmaSPR0();
304
305 // The qwc check is simply because having data still to transfer from the packet can freak games out if they do a d.tadr == s.madr check
306 // and there is still data to come over (FF12 ingame menu)
307 if(spr0ch.qwc == 0)
308 {
309 switch (dmacRegs.ctrl.MFD)
310 {
311 case MFD_VIF1: // Most common case.
312 case MFD_GIF:
313 hwMFIFOResume();
314 break;
315 default:
316 break;
317 }
318 }
319
320 return;
321 }
322
323 spr0ch.chcr.STR = false;
324 hwDmacIrq(DMAC_FROM_SPR);
325 DMA_LOG("SPR0 DMA End");
326}
327
328void dmaSPR0() // fromSPR
329{

Callers 2

dmacWrite32Function · 0.85
dmaSPR0Function · 0.85

Calls 3

_dmaSPR0Function · 0.85
hwMFIFOResumeFunction · 0.85
hwDmacIrqFunction · 0.85

Tested by

no test coverage detected