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

Function _SPR1chain

pcsx2/SPR.cpp:362–382  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

360
361
362int _SPR1chain()
363{
364 tDMA_TAG *pMem;
365
366 if (spr1ch.qwc == 0) return 0;
367
368 pMem = SPRdmaGetAddr(spr1ch.madr, false);
369 if (pMem == NULL) return -1;
370 int partialqwc = 0;
371 // Taking an arbitary small value for games which like to check the QWC/MADR instead of STR, so get most of
372 // the cycle delay out of the way before the end.
373 partialqwc = std::min(spr1ch.qwc, 0x400u);
374
375 SPR1transfer(pMem, partialqwc);
376 spr1ch.madr += partialqwc * 16;
377 spr1ch.qwc -= partialqwc;
378
379 hwDmacSrcTadrInc(spr1ch);
380
381 return (partialqwc);
382}
383
384__fi void SPR1chain()
385{

Callers 1

SPR1chainFunction · 0.85

Calls 4

SPRdmaGetAddrFunction · 0.85
SPR1transferFunction · 0.85
hwDmacSrcTadrIncFunction · 0.85
minFunction · 0.50

Tested by

no test coverage detected